{"id":39807,"date":"2026-07-23T16:07:32","date_gmt":"2026-07-23T16:07:32","guid":{"rendered":"https:\/\/nodemaven.com\/?p=39807"},"modified":"2026-07-23T16:07:33","modified_gmt":"2026-07-23T16:07:33","slug":"best-opencode-skills","status":"publish","type":"post","link":"https:\/\/nodemaven.com\/ru\/blog\/best-opencode-skills\/","title":{"rendered":"7 best OpenCode skills to supercharge your AI coding workflow (2026)"},"content":{"rendered":"\n<p>OpenCode has become the go-to terminal agent for developers who want full agentic coding without vendor lock-in. It runs any LLM provider, from Claude to Kimi to local models through Ollama, and that model-agnostic design is exactly why the skills ecosystem around it has taken off.<\/p>\n\n\n\n<p>Skills are what turn OpenCode from a fast code generator into something that actually works the way you do. Instead of re-explaining your planning process, your session habits, or your web research needs every time, you define them once and OpenCode picks them up automatically.<\/p>\n\n\n\n<p>This guide covers 7 best OpenCode skills worth installing today: planning, session handoff, live web research, codebase understanding, documentation, token efficiency, and full multi-agent workflows. You&#8217;ll also get real installation commands, configuration details, and production workflows that show how these skills chain together, including where reliable proxy infrastructure fits in.<\/p>\n\n\n<div\n\t\t\t\n\t\t\tclass=\"so-widget-rhinocore-addons-rhino-alert-banner so-widget-rhinocore-addons-rhino-alert-banner-default-d75171398898\"\n\t\t\t\n\t\t><div class=\"rhino-widget rhino-widget--rhinocore-addons-rhino-alert-banner section-alert\"    style=\"--alert-background-color: #E6E6FF\"\n>\n            <div class=\"section-alert__icon\">\n            <img decoding=\"async\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/02\/icon-4.svg\" alt=\"\" loading=\"lazy\" width=\"64\" height=\"64\">        <\/div>\n    \n            <div class=\"section-alert__main\">\n            \n                            <div class=\"section-alert__description\"><p data-pm-slice=\"0 0 []\"><strong>Power your OpenCode workflows with clean residential and mobile proxies. Try NodeMaven from $3.50 with 750 MB included<\/strong><\/p>\n<\/div>\n                    <\/div>\n    \n            <a\n            class=\"section-alert__button b-btn b-btn--static-xl b-btn--secondary-black\"\n            href=\"https:\/\/dashboard.nodemaven.com\/checkout\/pag\/trial\/\"\n            >\n            Start trial        <\/a>\n    <\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-opencode-skills\">What are OpenCode skills?<\/h2>\n\n\n\n<p>An OpenCode skill is a folder containing a <strong>SKILL.md<\/strong> file. That&#8217;s the whole spec.<\/p>\n\n\n\n<p>The file opens with YAML frontmatter (<strong>name<\/strong> and <strong>description<\/strong> are required) followed by markdown instructions the agent reads when the skill activates.<\/p>\n\n\n\n<p>OpenCode exposes a native <strong>skill<\/strong> tool to the model. At session start, it scans every installed skill and reads only the name and description, roughly 100 tokens each. When you give it a task, it checks the list and calls <strong>skill({ name: &#8220;&#8230;&#8221; })<\/strong> on anything that matches. The full instructions only load then.<\/p>\n\n\n\n<p>This progressive loading is the whole trick. You can have dozens of skills installed and never pay a token cost for the ones that don&#8217;t apply.<\/p>\n\n\n\n<p><strong>OpenCode looks for skills in six locations:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Scope<\/strong><\/td><td><strong>Path<\/strong><\/td><td><strong>Convention<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Project<\/td><td><strong>.opencode\/skills\/<\/strong><\/td><td>OpenCode-native<\/td><\/tr><tr><td>Project<\/td><td><strong>.claude\/skills\/<\/strong><\/td><td>Claude Code-compatible<\/td><\/tr><tr><td>Project<\/td><td><strong>.agents\/skills\/<\/strong><\/td><td>Agent Skills open standard<\/td><\/tr><tr><td>Global<\/td><td><strong>~\/.config\/opencode\/skills\/<\/strong><\/td><td>OpenCode-native user directory<\/td><\/tr><tr><td>Global<\/td><td><strong>~\/.claude\/skills\/<\/strong><\/td><td>Claude Code-compatible<\/td><\/tr><tr><td>Global<\/td><td><strong>~\/.agents\/skills\/<\/strong><\/td><td>Agent Skills open standard<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Global path is <strong>~\/.config\/opencode\/skills\/<\/strong>, not <strong>~\/.opencode\/skills\/<\/strong>.<\/p>\n\n\n\n<p>This is also why a skill built for Claude Code just works in OpenCode. Same <strong>SKILL.md<\/strong> format, same open standard, no conversion needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-we-chose-these-skills\">How we chose these skills<\/h2>\n\n\n\n<p>Not every skill on GitHub is worth your context budget.<\/p>\n\n\n\n<p>These made the list based on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Real adoption.<\/strong> GitHub stars, install counts, and community discussion, not just a polished README.<\/li>\n\n\n\n<li><strong>Specific trigger descriptions.<\/strong> A skill that says &#8220;helps with productivity&#8221; won&#8217;t activate reliably. One that says &#8220;use when the user asks to scrape a page or search the web&#8221; will.<\/li>\n\n\n\n<li><strong>Maintenance.<\/strong> Recent commits, active issues, a maintainer who responds.<\/li>\n\n\n\n<li><strong>Cross-agent compatibility.<\/strong> Skills that work in OpenCode, Claude Code, and Codex without modification score higher than single-harness tools.<\/li>\n\n\n\n<li><strong>Real-world value.<\/strong> Does this solve a problem that developers actually hit, or is it a novelty.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-which-skill-should-you-install-first\">Which skill should you install first?<\/h2>\n\n\n\n<p>If you&#8217;re new to OpenCode skills, don&#8217;t install all seven at once. Here&#8217;s a quick decision guide:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Your situation<\/strong><\/td><td><strong>Install this first<\/strong><\/td><\/tr><\/thead><tbody><tr><td>You keep correcting wrong assumptions mid-build<\/td><td>Grill Me<\/td><\/tr><tr><td>Your sessions die from context limits constantly<\/td><td>Handoff<\/td><\/tr><tr><td>OpenCode can&#8217;t see current docs or live pages<\/td><td>Firecrawl<\/td><\/tr><tr><td>You&#8217;re dropped into an unfamiliar codebase<\/td><td>Understand Anything<\/td><\/tr><tr><td>Your generated docs read like AI wrote them (they did)<\/td><td>Stop Slop<\/td><\/tr><tr><td>Your API bill is higher than it should be<\/td><td>Caveman<\/td><\/tr><tr><td>You want a full planning-to-merge pipeline<\/td><td>Obra Superpowers<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-best-opencode-skills-by-category\">Best OpenCode skills by category<\/h2>\n\n\n\n<p>Instead of ranking these 1 through 7, here&#8217;s what actually matters: which job each skill does best.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-nbsp-nbsp-nbsp-nbsp-best-planning-skill-grill-me\">1.&nbsp;&nbsp;&nbsp;&nbsp; Best planning skill: Grill Me<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> Interviews you relentlessly about every branch of a plan before OpenCode writes a single line of code. It walks the decision tree, resolves dependencies one at a time, and gives a recommended answer for each question so you&#8217;re reacting instead of stuck.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Feature specs, architecture decisions, and any plan that feels more solid than it actually is.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Surfaces assumptions before they turn into bugs<\/li>\n\n\n\n<li>Recommended answers keep the session moving instead of stalling<\/li>\n\n\n\n<li>Reads the codebase first when a question can be answered that way<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Needs an actual plan to work against. &#8220;I want to build X&#8221; is too vague<\/li>\n\n\n\n<li>Open-ended by design, not a fixed checklist<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Grill%20me%20on%20this%20feature%20spec%20before%20I%20start%20building%20the%20auth%20refactor\"><\/code><\/pre><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-nbsp-nbsp-nbsp-nbsp-best-session-management-skill-handoff\">2.&nbsp;&nbsp;&nbsp;&nbsp; Best session management skill: Handoff<\/h3>\n\n\n\n<p>What it does: Compresses your current OpenCode session into a structured markdown document, so you can continue in a fresh session or hand the work to a different agent entirely.<\/p>\n\n\n\n<p>Sessions nearing the compaction limit don&#8217;t just slow down. Attention relationships strain past roughly 120k tokens and quality drops. Handoff gives you a clean exit before that happens.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Long sessions approaching context limits, delegating implementation to a different model, or splitting work across parallel worktrees.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You control exactly what the next session needs to know<\/li>\n\n\n\n<li>Works cross-agent: plan in one harness, implement in another<\/li>\n\n\n\n<li>Pairs naturally with OpenCode&#8217;s model-agnostic setup, route the handoff to whatever model fits the next task<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Saves to your OS temp directory by default, commit it if you want it kept<\/li>\n\n\n\n<li>Less useful for short, single-threaded sessions<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Create%20a%20handoff%20for%20this%20session%20before%20I%20run%20out%20of%20context\"><\/code><\/pre><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-nbsp-nbsp-nbsp-nbsp-best-web-research-skill-firecrawl\">3.&nbsp;&nbsp;&nbsp;&nbsp; Best web research skill: Firecrawl<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> Gives OpenCode live web context it doesn&#8217;t have by default: search, scrape, crawl, map, and browser interaction.<\/p>\n\n\n\n<p>OpenCode ships with no live internet access. Whatever the underlying model learned during training is what it knows. Recent docs, library changelogs, and pages published after training are all invisible until you give it a way to fetch them.<\/p>\n\n\n\n<p>The Firecrawl CLI is built specifically for agents. Results write to files instead of flooding the context window, JavaScript-heavy pages render automatically, and the commands map directly to how an agent thinks: search to find sources, scrape to read one, crawl to index a whole site, map to discover URLs, interact to control a live browser.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Documentation lookups, competitor research, changelog monitoring, and any task where the answer isn&#8217;t in the model&#8217;s training data.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Over 80% content recall on scraping benchmarks<\/li>\n\n\n\n<li>JavaScript rendering handled without extra setup<\/li>\n\n\n\n<li>File-based output keeps the context window clean<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Free tier covers testing, but production workloads need a paid plan<\/li>\n\n\n\n<li>Credits run out fast on heavy crawl jobs<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Crawl%20the%20OpenCode%20docs%20and%20find%20every%20page%20that%20mentions%20the%20skill%20permission%20system\"><\/code><\/pre><\/figure>\n\n\n<p>Where proxies fit in: Firecrawl solves the scraping and <a href=\"https:\/\/nodemaven.com\/use-cases\/web-automation-proxies\/\">automation<\/a> layer. It doesn&#8217;t solve IP reputation. If you&#8217;re crawling at volume, hitting geo-restricted pages, or running the interact command against a site that fingerprints browser sessions, you&#8217;ll eventually hit rate limits or CAPTCHAs from a single origin IP. That&#8217;s a proxy problem, not a Firecrawl problem, and it&#8217;s where <a href=\"https:\/\/nodemaven.com\/\">NodeMaven<\/a> becomes part of the stack rather than a separate concern. Routing Firecrawl&#8217;s requests through NodeMaven&#8217;s <a href=\"https:\/\/nodemaven.com\/proxies\/residential-proxies\/\">residential IPs<\/a> keeps the crawl distributed across real-user addresses instead of a single flagged data center range. More on this in the production workflows section below.<\/p>\n\n\n<div\n\t\t\t\n\t\t\tclass=\"so-widget-rhinocore-addons-rhino-alert-banner so-widget-rhinocore-addons-rhino-alert-banner-default-d75171398898\"\n\t\t\t\n\t\t><div class=\"rhino-widget rhino-widget--rhinocore-addons-rhino-alert-banner section-alert\"    style=\"--alert-background-color: #E6E6FF\"\n>\n            <div class=\"section-alert__icon\">\n            <img decoding=\"async\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/02\/icon-4.svg\" alt=\"\" loading=\"lazy\" width=\"64\" height=\"64\">        <\/div>\n    \n            <div class=\"section-alert__main\">\n            \n                            <div class=\"section-alert__description\"><p data-pm-slice=\"0 0 []\"><strong>Crawling websites with Firecrawl? Reduce blocks and CAPTCHAs with NodeMaven residential proxies. Try it from $3.50 with 750 MB included<\/strong><\/p>\n<\/div>\n                    <\/div>\n    \n            <a\n            class=\"section-alert__button b-btn b-btn--static-xl b-btn--secondary-black\"\n            href=\"https:\/\/dashboard.nodemaven.com\/checkout\/pag\/trial\/\"\n            >\n            Start trial        <\/a>\n    <\/div>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-nbsp-nbsp-nbsp-nbsp-best-code-understanding-skill-understand-anything\">4.&nbsp;&nbsp;&nbsp;&nbsp; Best code understanding skill: Understand Anything<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> Turns a codebase into an interactive knowledge graph. A pipeline of specialized subagents (project-scanner, file-analyzer, architecture-analyzer, tour-builder, graph-reviewer, domain-analyzer) builds plain-English summaries for every file, function, and dependency, then exposes it through fuzzy search, semantic search, and guided tours.<\/p>\n\n\n\n<p>It combines Tree-sitter&#8217;s deterministic structure parsing with LLM-generated summaries, so the graph is grounded in the actual code rather than a model&#8217;s guess at what the repo probably does.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Getting dropped into an unfamiliar codebase, onboarding, or checking blast radius before a risky change.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Incremental after the first run, cheap to keep updated<\/li>\n\n\n\n<li><strong>\/understand-diff<\/strong> shows what your change actually affects before you commit<\/li>\n\n\n\n<li>First-pass analysis can run on a cheap or local model, then switch to a frontier model for interactive queries<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First run on a large codebase burns real tokens analyzing every file<\/li>\n\n\n\n<li>Requires a restart after install to register the commands<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Which%20modules%20depend%20on%20the%20payment%20service%2C%20and%20what%20breaks%20if%20I%20change%20it%3F\"><\/code><\/pre><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-nbsp-nbsp-nbsp-nbsp-best-documentation-skill-stop-slop\">5.&nbsp;&nbsp;&nbsp;&nbsp; Best documentation skill: Stop Slop<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> Strips the tells that make AI-written prose obvious: throat-clearing openers, business jargon, the &#8220;Not X. But Y.&#8221; rhythm, dramatic fragmentation, and rhetorical setups. It scores writing across five dimensions (Directness, Rhythm, Trust, Authenticity, Density) on a 1-10 scale and revises anything scoring below 35 out of 50.<\/p>\n\n\n\n<p>This isn&#8217;t a code skill. It targets anything the agent writes for humans to read: READMEs, commit messages, changelogs, docs.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Any writing task where the output needs to ship, not just compile.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Concrete rubric beats a vague \u201cmake it sound less AI\u201d instruction<\/li>\n\n\n\n<li>Reference files teach you to spot the patterns in your own writing too<\/li>\n\n\n\n<li>Works the same way across Claude Code, Codex, and OpenCode<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Not built for code, only prose<\/li>\n\n\n\n<li>The rubric is opinionated. If your house style already leans on contrast structures, it&#8217;ll fight you<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Draft%20the%20README%20for%20this%20repo%2C%20then%20score%20and%20revise%20it%20with%20stop-slop\"><\/code><\/pre><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-nbsp-nbsp-nbsp-nbsp-best-token-optimization-skill-caveman\">6.&nbsp;&nbsp;&nbsp;&nbsp; Best token optimization skill: Caveman<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> Strips narration, filler, and pleasantries from every response while keeping technical facts and code blocks byte-for-byte intact. Average output token reduction sits around 65%, with a range of 22-87% depending on the task.<\/p>\n\n\n\n<p><strong>A normal explanation:<\/strong> \u201cThe reason your component is re-rendering is likely because you&#8217;re creating a new object reference on each render cycle. I&#8217;d recommend using useMemo to memoize the object.\u201d In caveman mode: \u201cNew object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.\u201d Same fix, a fraction of the words.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Long sessions where output tokens are adding up, or any workflow where you want the answer, not the narration around it.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Companion \/caveman-compress shrinks your <strong>AGENTS.md<\/strong> by roughly 46%, cutting input tokens on every future session too<\/li>\n\n\n\n<li>Works across 30+ agents, not just OpenCode<\/li>\n\n\n\n<li>Includes commit-message and PR-review modes with the same compression<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Adds roughly 1-1.5k input tokens per turn itself, so it can go net-negative on very short exchanges<\/li>\n\n\n\n<li>The OpenCode integration is newer and less battle-tested than the Claude Code version<\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"%2Fcaveman%20full\"><\/code><\/pre><\/figure>\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Explain%20what%20changed%20in%20this%20diff\"><\/code><\/pre><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-nbsp-nbsp-nbsp-nbsp-best-complete-workflow-obra-superpowers\">7.&nbsp;&nbsp;&nbsp;&nbsp; Best complete workflow: Obra Superpowers<\/h3>\n\n\n\n<p><strong>What it does:<\/strong> The most complete multi-agent development framework available as an OpenCode-compatible skill set. It ships a plugin that injects a \u201c1% rule\u201d into every session (if there&#8217;s even a slim chance a skill applies, use it) plus a full library covering brainstorming, git worktrees, implementation planning, subagent-driven execution, TDD, systematic debugging, and verification before marking anything done.<\/p>\n\n\n\n<p>OpenCode is a first-class target here. The repository ships a dedicated <strong>.opencode\/<\/strong> directory with harness-specific install instructions.<\/p>\n\n\n\n<p><strong>Best for:<\/strong> Projects with clear requirements where you want systematic execution rather than exploratory prototyping.<\/p>\n\n\n\n<p><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Subagent-driven approach fits OpenCode&#8217;s model flexibility well, route subagents to cheaper models and reserve frontier models for design review<\/li>\n\n\n\n<li>TDD enforcement means tests exist before code does<\/li>\n\n\n\n<li>Currently the highest-starred skills repository in the ecosystem<\/li>\n<\/ul>\n\n\n\n<p><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The bootstrap runs every session, adding ambient token cost<\/li>\n\n\n\n<li>Opinionated methodology (TDD, YAGNI) won&#8217;t fit every workflow<\/li>\n\n\n\n<li>Telemetry ships on by default, disable with <strong>SUPERPOWERS_DISABLE_TELEMETRY=1<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Example prompt:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"Brainstorm%20the%20approach%20for%20adding%20real-time%20collaboration%2C%20then%20write%20a%20plan%20and%20execute%20it\"><\/code><\/pre><\/figure>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-skill-combinations-worth-installing-together\">Skill combinations worth installing together<\/h2>\n\n\n\n<p>Individual skills solve individual problems. A few pairings are worth more than the sum of their parts.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Combination<\/strong><\/td><td><strong>Why it works<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Grill Me + Obra Superpowers<\/td><td>Grill Me resolves the plan, Superpowers executes it with TDD and subagent review.<\/td><\/tr><tr><td>Firecrawl + NodeMaven<\/td><td>Firecrawl fetches, NodeMaven keeps the fetching from getting blocked at scale.<\/td><\/tr><tr><td>Handoff + Caveman<\/td><td>Compress the session document, then keep every future session lean on output tokens.<\/td><\/tr><tr><td>Understand Anything + Grill Me<\/td><td>Understand the codebase first, then grill your plan against what actually exists instead of assumptions.<\/td><\/tr><tr><td>Stop Slop + any doc-generation task<\/td><td>Run it as a final pass on anything the agent writes for humans to read.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<div\n\t\t\t\n\t\t\tclass=\"so-widget-rhinocore-addons-rhino-alert-banner so-widget-rhinocore-addons-rhino-alert-banner-default-d75171398898\"\n\t\t\t\n\t\t><div class=\"rhino-widget rhino-widget--rhinocore-addons-rhino-alert-banner section-alert\"    style=\"--alert-background-color: #E6E6FF\"\n>\n            <div class=\"section-alert__icon\">\n            <img decoding=\"async\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/02\/icon-4.svg\" alt=\"\" loading=\"lazy\" width=\"64\" height=\"64\">        <\/div>\n    \n            <div class=\"section-alert__main\">\n            \n                            <div class=\"section-alert__description\"><p data-pm-slice=\"0 0 []\"><strong>Give OpenCode agents reliable access to the live web with premium residential proxies. Try NodeMaven from $3.50 with 750 MB included<\/strong><\/p>\n<\/div>\n                    <\/div>\n    \n            <a\n            class=\"section-alert__button b-btn b-btn--static-xl b-btn--secondary-black\"\n            href=\"https:\/\/dashboard.nodemaven.com\/checkout\/pag\/trial\/\"\n            >\n            Start trial        <\/a>\n    <\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-install-opencode-skills\">How to install OpenCode skills<\/h2>\n\n\n\n<p>There&#8217;s no single unified <strong>OpenCode skill install<\/strong> command yet. <strong>Most skills use one of three patterns:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The skills CLI:<\/strong> <strong>npx skills add [repo]<\/strong> pulls from GitHub and drops the skill into <strong>.agents\/skills\/<\/strong> or a directory you specify.<\/li>\n\n\n\n<li><strong>A curl-piped install script:<\/strong> common for skills with companion binaries or cross-agent detection, like Firecrawl and Caveman.<\/li>\n\n\n\n<li><strong>A manual git clone:<\/strong> copy the skill folder directly into one of the six recognized directories.<\/li>\n<\/ul>\n\n\n\n<p>Some skills, like Superpowers, ship harness-specific installers you paste as a prompt and let OpenCode run itself.<\/p>\n\n\n\n<p>After installing, restart OpenCode so it re-scans the skill directories.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-configure-opencode-skills\">How to configure OpenCode skills<\/h2>\n\n\n\n<p>Every <strong>SKILL.md<\/strong> starts with YAML frontmatter. <strong>Only these fields are recognized:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Field<\/strong><\/td><td><strong>Required<\/strong><\/td><td><strong>Notes<\/strong><\/td><\/tr><\/thead><tbody><tr><td>name<\/td><td>Yes<\/td><td>Lowercase, hyphen-separated, must match the folder name<\/td><\/tr><tr><td>description<\/td><td>Yes<\/td><td>1\u20131,024 characters, specific enough for the agent to route correctly<\/td><\/tr><tr><td>license<\/td><td>No<\/td><td><\/td><\/tr><tr><td>compatibility<\/td><td>No<\/td><td><\/td><\/tr><tr><td>metadata<\/td><td>No<\/td><td>String-to-string map<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>The name field must match this pattern:<\/strong> lowercase alphanumeric characters with single hyphens, no leading or trailing hyphen, no double hyphens.<\/p>\n\n\n\n<p>Permissions are configured in <strong>opencode.json<\/strong> under <strong>permission.skill<\/strong>:<\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"json\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-json\" data-rhino-code=\"%7B%0A%20%20%22permission%22%3A%20%7B%0A%20%20%20%20%22skill%22%3A%20%7B%0A%20%20%20%20%20%20%22%2A%22%3A%20%22allow%22%2C%0A%20%20%20%20%20%20%22internal-%2A%22%3A%20%22deny%22%2C%0A%20%20%20%20%20%20%22experimental-%2A%22%3A%20%22ask%22%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\"><\/code><\/pre><\/figure>\n\n\n<p>Wildcards work here. <strong>internal-*<\/strong> matches any skill starting with that prefix. deny hides a skill from the agent entirely. <strong>ask<\/strong> prompts you for approval before it loads. Per-agent overrides let different agents in the same project see different skill sets, and setting <strong>tools: { skill: false }<\/strong> on an agent disables the skill system for it completely.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-your-own-opencode-skill\">Create your own OpenCode skill<\/h2>\n\n\n\n<p>The skills that save the most time are often the ones you write yourself, encoding your team&#8217;s specific process rather than a generic one.<\/p>\n\n\n\n<p><strong>Structure:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"my-skill%2F%0A%20%20SKILL.md%0A%20%20reference.md%20%20%20%20%20%20%20%28optional%2C%20deeper%20context%29%0A%20%20scripts%2F%20%20%20%20%20%20%20%20%20%20%20%20%28optional%2C%20deterministic%20helpers%29\"><\/code><\/pre><\/figure>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-best-practices\">Best practices:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep <strong>SKILL.md <\/strong>lean. Push edge cases and long context into a reference file that only loads on demand.<\/li>\n\n\n\n<li>Write the description like a routing rule. \u201cUse when the user asks to X, Y, or Z,\u201d not \u201chelps with tasks.\u201d<\/li>\n\n\n\n<li>One skill, one job. A skill trying to cover five workflows triggers at the wrong moments.<\/li>\n\n\n\n<li>Put deterministic work in scripts. Parsing, validation, and sorting belong in code, not in the model&#8217;s judgment.<\/li>\n\n\n\n<li>Show, don&#8217;t just tell. Three worked examples beat twenty bullet-pointed rules.<\/li>\n<\/ul>\n\n\n\n<p><strong>Minimal example:<\/strong><\/p>\n\n\n<figure class=\"rhino-code-snippet\" data-lang=\"plaintext\"><button type=\"button\" class=\"rhino-code-snippet__copy\" aria-label=\"Copy code to clipboard\"><svg class=\"rhino-code-snippet__icon-copy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><svg class=\"rhino-code-snippet__icon-check\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg><\/button><span class=\"rhino-code-snippet__sr\" aria-live=\"polite\"><\/span><pre class=\"line-numbers\"><code class=\"language-plaintext\" data-rhino-code=\"---%0Aname%3A%20pr-description-writer%0Adescription%3A%20Use%20when%20the%20user%20asks%20to%20draft%2C%20generate%2C%20or%20improve%20a%20pull%20request%20description%20from%20a%20diff%20or%20branch.%0A---%0A%0A%23%20PR%20Description%20Writer%0A%0ARead%20the%20diff.%20Summarize%20what%20changed%20and%20why%2C%20in%20that%20order.%0ALink%20related%20issues%20if%20mentioned%20in%20commit%20messages.%0AFlag%20breaking%20changes%20in%20a%20separate%20section.\"><\/code><\/pre><\/figure>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-recommended-opencode-workflows\">Recommended OpenCode workflows<\/h2>\n\n\n\n<p>Individual skills are useful. Chained together, they cover full production tasks. Here are three real combinations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-competitor-monitoring\">Competitor monitoring<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1-1024x683.png\" alt=\"Competitor monitoring OpenCode workflow\" class=\"wp-image-39808\" style=\"aspect-ratio:1.5000131971388604;width:758px;height:auto\" srcset=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1-1024x683.png 1024w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1-300x200.png 300w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1-768x512.png 768w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1-18x12.png 18w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc1-1.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Run this on a schedule and you get a standing competitor watch instead of a one-off scrape.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-browser-automation\">Browser automation<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2-1024x683.png\" alt=\"Browser automation OpenCode workflow\" class=\"wp-image-39809\" style=\"aspect-ratio:1.5000131971388604;width:635px;height:auto\" srcset=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2-1024x683.png 1024w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2-300x200.png 300w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2-768x512.png 768w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2-18x12.png 18w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc2.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Useful for testing flows behind geo-restrictions, or QA against pages that behave differently for real-user traffic than for a flagged data center IP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-research-pipeline\">AI research pipeline<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4-1024x683.png\" alt=\"AI research OpenCode workflow\" class=\"wp-image-39812\" style=\"aspect-ratio:1.5000131971388604;width:695px;height:auto\" srcset=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4-1024x683.png 1024w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4-300x200.png 300w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4-768x512.png 768w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4-18x12.png 18w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc4.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This is the shape of most research-heavy OpenCode sessions once you get past toy examples: gather, clean, synthesize.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-production-workflows-need-proxies\">Why production workflows need proxies<\/h2>\n\n\n\n<p>Skills like Firecrawl solve the capability gap. OpenCode can now reach the web. What they don&#8217;t solve is what happens when the web pushes back.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rate limits.<\/strong> A single IP making hundreds of requests looks like an attack to most servers, regardless of how well-behaved your crawl logic is.<\/li>\n\n\n\n<li><strong>CAPTCHA walls.<\/strong> Anti-bot systems fingerprint IP reputation alongside browser behavior. A data center IP with no request history triggers challenges that a residential IP rarely does.<\/li>\n\n\n\n<li><strong>IP reputation.<\/strong> Once an IP gets flagged, everything routed through it inherits that reputation. Shared data center ranges get burned fast under scraping load.<\/li>\n\n\n\n<li><strong>Geo-testing.<\/strong> If your agent needs to verify how a page renders in a specific country, city, or even ZIP code, you need IPs that are actually there. A single origin IP can&#8217;t fake that.<\/li>\n\n\n\n<li><strong>Browser automation at scale.<\/strong> Tools like Playwright and Puppeteer can perfectly mimic human interaction, but if every session originates from the same IP block, the fingerprint gives it away regardless of how convincing the click patterns are.<\/li>\n<\/ul>\n\n\n\n<p>This is where a residential proxy layer stops being optional infrastructure and starts being part of the skill stack itself.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-1024x447.png\" alt=\"NodeMaven homepage\" class=\"wp-image-39811\" srcset=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-1024x447.png 1024w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-300x131.png 300w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-768x335.png 768w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-1536x670.png 1536w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1-18x8.png 18w, https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/nodemaven-hp-1.png 1894w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>NodeMaven provides a pool of residential and mobile IPs across 190+ countries, with a 95%+ clean IP rate from <a href=\"https:\/\/nodemaven.com\/features\/ip-quality-filter\/\">real-time quality filtering<\/a> before assignment.<\/p>\n\n\n\n<p><a href=\"https:\/\/nodemaven.com\/features\/zip-level-targeting\/\">Geo-targeting goes down to the ZIP level,<\/a> which matters if your OpenCode agent is checking localized pricing or region-specific search results.<\/p>\n\n\n\n<p>None of this replaces Firecrawl, Playwright, or the skills covered above. It sits underneath them. The skill gives OpenCode the ability to act; the proxy layer gives that action a clean, believable identity on the other end.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>The best OpenCode setup isn&#8217;t one skill. It&#8217;s a stack that covers planning (Grill Me), session continuity (Handoff), live web access (Firecrawl), codebase understanding (Understand Anything), writing quality (Stop Slop), token efficiency (Caveman), and full workflow orchestration (Obra Superpowers) all working together.<\/p>\n\n\n\n<p>Skills give OpenCode the capabilities. What determines whether those capabilities hold up in production is the infrastructure underneath them, including how reliably your agent can actually reach the web it&#8217;s trying to read. For any workflow that leans on Firecrawl, Playwright, or browser automation at scale, a residential proxy layer like NodeMaven is what keeps that access working past the first few requests.<\/p>\n\n\n\n<p><strong>Start with one or two skills from this list. Add the rest as you hit the specific problems they solve.<\/strong><\/p>\n\n\n<div\n\t\t\t\n\t\t\tclass=\"so-widget-rhinocore-addons-rhino-alert-banner so-widget-rhinocore-addons-rhino-alert-banner-default-d75171398898\"\n\t\t\t\n\t\t><div class=\"rhino-widget rhino-widget--rhinocore-addons-rhino-alert-banner section-alert\"    style=\"--alert-background-color: #E6E6FF\"\n>\n            <div class=\"section-alert__icon\">\n            <img decoding=\"async\" src=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/02\/icon-4.svg\" alt=\"\" loading=\"lazy\" width=\"64\" height=\"64\">        <\/div>\n    \n            <div class=\"section-alert__main\">\n            \n                            <div class=\"section-alert__description\"><p data-pm-slice=\"0 0 []\"><strong>Scale web scraping and competitor monitoring with clean residential proxies. Try NodeMaven from $3.50 with 750 MB included<\/strong><\/p>\n<\/div>\n                    <\/div>\n    \n            <a\n            class=\"section-alert__button b-btn b-btn--static-xl b-btn--secondary-black\"\n            href=\"https:\/\/dashboard.nodemaven.com\/checkout\/pag\/trial\/\"\n            >\n            Start trial        <\/a>\n    <\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-frequently-asked-questions\">Frequently asked questions<\/h2>\n\n\n<div\n\t\t\t\n\t\t\tclass=\"so-widget-rhinocore-addons-faq so-widget-rhinocore-addons-faq-default-d75171398898\"\n\t\t\t\n\t\t>    <div class=\"rhino-widget rhino-widget--rhinocore-addons-faq section-faq\">\n        <div class=\"section-faq__list section-faq__list--columns-1\" role=\"list\" aria-label=\"Frequently Asked Questions\">\n                            <div class=\"section-faq__column\">\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">What are OpenCode skills?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Directories containing a <strong>SKILL.md<\/strong> file with YAML frontmatter and markdown instructions. OpenCode reads the name and description of every installed skill at startup and loads the full body only when a task matches.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">How do I install OpenCode skills?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Most use npx skills add [repo], a curl-piped install script, or a manual git clone into one of the six recognized skill directories. Restart OpenCode after installing.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">Where are OpenCode skills stored?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Six locations: .opencode\/skills\/, .claude\/skills\/, and .agents\/skills\/ at the project level, plus ~\/.config\/opencode\/skills\/, ~\/.claude\/skills\/, and ~\/.agents\/skills\/ globally.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">Can OpenCode use Claude skills?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Yes. OpenCode reads .claude\/skills\/ and ~\/.claude\/skills\/ natively. Any skill built for Claude Code, including the official Anthropic repository, works in OpenCode without modification.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">Can Firecrawl use proxies?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Firecrawl handles the scraping and rendering layer. For volume crawling or geo-specific access, routing requests through a residential proxy provider like NodeMaven keeps IP reputation clean, separate from what Firecrawl itself manages.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">Do I need proxies for OpenCode?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Not for local development or light research. Once you&#8217;re crawling at volume, hitting geo-restricted content, or running browser automation against anti-bot protected sites, a <a href=\"https:\/\/nodemaven.com\/proxies\/residential-proxies\/\">residential proxy<\/a> layer becomes necessary rather than optional.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                            <div class=\"section-faq__item\" data-accordion=\"wrapper\" data-accordion-group=\"faq\" role=\"listitem\">\n                            <h3 class=\"section-faq__heading\">\n                                <button class=\"section-faq__trigger\" data-accordion=\"trigger\" type=\"button\" aria-expanded=\"false\">\n                                    <span class=\"section-faq__question\">Can Playwright use residential proxies?<\/span>\n                                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n                                        <path d=\"M7 10.5L14 17.5L21 10.5\" stroke=\"#5D5D5D\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                                    <\/svg>\n                                <\/button>\n                            <\/h3>\n                            <div class=\"section-faq__content\">\n                                <div class=\"section-faq__answer\">\n                                    <p>Yes. Playwright supports standard proxy configuration at the browser-context level, which is where NodeMaven plugs in for automation that needs to look like real-user traffic.<\/p>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                                    <\/div>\n                    <\/div>\n    <\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Explore the best OpenCode skills for faster AI coding, smarter planning, and more efficient development workflows","protected":false},"author":80,"featured_media":39814,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[213],"class_list":["post-39807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-guides-tutorials"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Best OpenCode skills in 2026: 7 must-have skills for developers<\/title>\n<meta name=\"description\" content=\"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nodemaven.com\/ru\/blog\/best-opencode-skills\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"7 best OpenCode skills to supercharge your AI coding workflow (2026)\" \/>\n<meta property=\"og:description\" content=\"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nodemaven.com\/ru\/blog\/best-opencode-skills\/\" \/>\n<meta property=\"og:site_name\" content=\"NodeMaven\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/NodeMaven\/100095402507825\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-23T16:07:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-23T16:07:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Olga Kotko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olga Kotko\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 \u043c\u0438\u043d\u0443\u0442\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/\"},\"author\":{\"name\":\"Olga Kotko\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#\\\/schema\\\/person\\\/79a9c10c7956e31a5628504fe9cffe2e\"},\"headline\":\"7 best OpenCode skills to supercharge your AI coding workflow (2026)\",\"datePublished\":\"2026-07-23T16:07:32+00:00\",\"dateModified\":\"2026-07-23T16:07:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/\"},\"wordCount\":2779,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/oc_featured-1.png\",\"keywords\":[\"Guides &amp; Tutorials\"],\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/ru\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/\",\"name\":\"Best OpenCode skills in 2026: 7 must-have skills for developers\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/oc_featured-1.png\",\"datePublished\":\"2026-07-23T16:07:32+00:00\",\"dateModified\":\"2026-07-23T16:07:33+00:00\",\"description\":\"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/oc_featured-1.png\",\"contentUrl\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/oc_featured-1.png\",\"width\":1672,\"height\":941,\"caption\":\"OpenCode skills illustration showing an AI coding assistant, workflow automation, code editor, and development tools\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nodemaven.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"7 best OpenCode skills to supercharge your AI coding workflow (2026)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#website\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/\",\"name\":\"NodeMaven\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nodemaven.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":[\"Organization\",\"Place\"],\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#organization\",\"name\":\"NodeMaven\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/\",\"logo\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#local-main-organization-logo\"},\"image\":{\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#local-main-organization-logo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/people\\\/NodeMaven\\\/100095402507825\\\/\",\"https:\\\/\\\/t.me\\\/NodeMavenTG\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/nodemaven\\\/\"],\"telephone\":[],\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"opens\":\"00:00\",\"closes\":\"23:59\"}],\"legalName\":\"NodeMaven FZ LLC\",\"email\":\"support@nodemaven.com\",\"description\":\"NodeMaven is a proxy infrastructure provider offering residential, mobile, and ISP proxies with IP quality filtering, precise geo-targeting, HTTPS and SOCKS5 support, and developer APIs.\",\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@nodemaven.com\"},{\"@type\":\"ContactPoint\",\"contactType\":\"legal\",\"email\":\"legal.public@nodemaven.com\"}],\"award\":[\"People Love Us, awarded by Trustpilot (2025)\",\"Top Rated, awarded by Top Business Software (2025)\",\"Customers Love Us, awarded by Sourceforge (2025)\",\"Users Love Us, awarded by G2 (2025)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/#\\\/schema\\\/person\\\/79a9c10c7956e31a5628504fe9cffe2e\",\"name\":\"Olga Kotko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/olga-kotko_avatar-96x96.jpg\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/olga-kotko_avatar-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/olga-kotko_avatar-96x96.jpg\",\"caption\":\"Olga Kotko\"},\"description\":\"I write about proxies and automation, translating complicated digital topics into research-driven content people can actually enjoy reading\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/ru\\\/author\\\/olga-kotko\\\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/nodemaven.com\\\/blog\\\/best-opencode-skills\\\/#local-main-organization-logo\",\"url\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/cropped-Untitled-design-8-1.png\",\"contentUrl\":\"https:\\\/\\\/nodemaven.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/cropped-Untitled-design-8-1.png\",\"width\":512,\"height\":512,\"caption\":\"NodeMaven\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Best OpenCode skills in 2026: 7 must-have skills for developers","description":"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nodemaven.com\/ru\/blog\/best-opencode-skills\/","og_locale":"ru_RU","og_type":"article","og_title":"7 best OpenCode skills to supercharge your AI coding workflow (2026)","og_description":"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them","og_url":"https:\/\/nodemaven.com\/ru\/blog\/best-opencode-skills\/","og_site_name":"NodeMaven","article_publisher":"https:\/\/www.facebook.com\/people\/NodeMaven\/100095402507825\/","article_published_time":"2026-07-23T16:07:32+00:00","article_modified_time":"2026-07-23T16:07:33+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png","type":"image\/png"}],"author":"Olga Kotko","twitter_card":"summary_large_image","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c":"Olga Kotko","\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"13 \u043c\u0438\u043d\u0443\u0442"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#article","isPartOf":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/"},"author":{"name":"Olga Kotko","@id":"https:\/\/nodemaven.com\/#\/schema\/person\/79a9c10c7956e31a5628504fe9cffe2e"},"headline":"7 best OpenCode skills to supercharge your AI coding workflow (2026)","datePublished":"2026-07-23T16:07:32+00:00","dateModified":"2026-07-23T16:07:33+00:00","mainEntityOfPage":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/"},"wordCount":2779,"commentCount":0,"publisher":{"@id":"https:\/\/nodemaven.com\/#organization"},"image":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png","keywords":["Guides &amp; Tutorials"],"articleSection":["Uncategorized"],"inLanguage":"ru-RU","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/nodemaven.com\/ru\/#organization"}},{"@type":"WebPage","@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/","url":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/","name":"Best OpenCode skills in 2026: 7 must-have skills for developers","isPartOf":{"@id":"https:\/\/nodemaven.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#primaryimage"},"image":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png","datePublished":"2026-07-23T16:07:32+00:00","dateModified":"2026-07-23T16:07:33+00:00","description":"Discover the 7 best OpenCode skills for planning, web research, documentation, and browser automation. Learn how to install and combine them","breadcrumb":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nodemaven.com\/blog\/best-opencode-skills\/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#primaryimage","url":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png","contentUrl":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/07\/oc_featured-1.png","width":1672,"height":941,"caption":"OpenCode skills illustration showing an AI coding assistant, workflow automation, code editor, and development tools"},{"@type":"BreadcrumbList","@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nodemaven.com\/"},{"@type":"ListItem","position":2,"name":"7 best OpenCode skills to supercharge your AI coding workflow (2026)"}]},{"@type":"WebSite","@id":"https:\/\/nodemaven.com\/#website","url":"https:\/\/nodemaven.com\/","name":"NodeMaven","description":"","publisher":{"@id":"https:\/\/nodemaven.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nodemaven.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":["Organization","Place"],"@id":"https:\/\/nodemaven.com\/#organization","name":"NodeMaven","url":"https:\/\/nodemaven.com\/","logo":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#local-main-organization-logo"},"image":{"@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#local-main-organization-logo"},"sameAs":["https:\/\/www.facebook.com\/people\/NodeMaven\/100095402507825\/","https:\/\/t.me\/NodeMavenTG","https:\/\/www.linkedin.com\/company\/nodemaven\/"],"telephone":[],"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],"opens":"00:00","closes":"23:59"}],"legalName":"NodeMaven FZ LLC","email":"support@nodemaven.com","description":"NodeMaven \u2014 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u043f\u0440\u043e\u043a\u0441\u0438-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u044b\u0435, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 ISP-\u043f\u0440\u043e\u043a\u0441\u0438 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 IP, \u0442\u043e\u0447\u043d\u044b\u043c \u0433\u0435\u043e-\u0442\u0430\u0440\u0433\u0435\u0442\u0438\u043d\u0433\u043e\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 HTTPS \u0438 SOCKS5, \u0430 \u0442\u0430\u043a\u0436\u0435 API \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.","contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@nodemaven.com"},{"@type":"ContactPoint","contactType":"legal","email":"legal.public@nodemaven.com"}],"award":["People Love Us, awarded by Trustpilot (2025)","Top Rated, awarded by Top Business Software (2025)","Customers Love Us, awarded by Sourceforge (2025)","Users Love Us, awarded by G2 (2025)"]},{"@type":"Person","@id":"https:\/\/nodemaven.com\/#\/schema\/person\/79a9c10c7956e31a5628504fe9cffe2e","name":"\u041e\u043b\u044c\u0433\u0430 \u041a\u043e\u0442\u043a\u043e","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/05\/olga-kotko_avatar-96x96.jpg","url":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/05\/olga-kotko_avatar-96x96.jpg","contentUrl":"https:\/\/nodemaven.com\/wp-content\/uploads\/2026\/05\/olga-kotko_avatar-96x96.jpg","caption":"Olga Kotko"},"description":"\u042f \u043f\u0438\u0448\u0443 \u043e \u043f\u0440\u043e\u043a\u0441\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0442\u0435\u043c\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043b\u044e\u0434\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c.","url":"https:\/\/nodemaven.com\/ru\/author\/olga-kotko\/"},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/nodemaven.com\/blog\/best-opencode-skills\/#local-main-organization-logo","url":"https:\/\/nodemaven.com\/wp-content\/uploads\/2025\/03\/cropped-Untitled-design-8-1.png","contentUrl":"https:\/\/nodemaven.com\/wp-content\/uploads\/2025\/03\/cropped-Untitled-design-8-1.png","width":512,"height":512,"caption":"NodeMaven"}]}},"_links":{"self":[{"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/posts\/39807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/users\/80"}],"replies":[{"embeddable":true,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/comments?post=39807"}],"version-history":[{"count":1,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/posts\/39807\/revisions"}],"predecessor-version":[{"id":39815,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/posts\/39807\/revisions\/39815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/media\/39814"}],"wp:attachment":[{"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/media?parent=39807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/categories?post=39807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nodemaven.com\/ru\/wp-json\/wp\/v2\/tags?post=39807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}