September 22, 2026
Agent writes its own tools on the fly: OpenCode 2 picks up a plugin without restarting
In a live session, the agent wrote itself a 232-line plugin and immediately called the new tool, with no restart.

dax
@thdxr
keith finally finished the blog post he explains how OpenCode 2.0 can change anything about itself in real time, even right in the middle of active sessions by the way, share every easter egg you find https://anoma.ly/notes/opencode-reloaded/
· 315.2K views
Keith Langton was finishing a post about OpenCode 2 and asked the agent to count the words. It wrote itself a tool.
The `.opencode/plugins/writing.ts` plugin grew by 232 lines during that same session, then added another 14. The agent immediately called its new tools: `word_count` counted 1 248 words, while `reading_time` returned 6 minutes of reading.
The second version extends this trick across the agent's entire setup. A config edit, new MCP server, or fresh plugin is picked up by all open sessions at once: no quitting, no `/reload`, no prompt-cache reset.
Previously, only a restart helped. According to issue #34408 from 29.06.2026, a new skill would not appear in the list until opencode was restarted completely. The ticket was closed without a fix.
Now a skill attaches to a live session. The `bunx skills add --skill grill-me` command puts a file in `.opencode/skills/grill-me/SKILL.md`, and the session sees it immediately. The V2 docs promise the same for every watched config folder.
How to install. There is one install command: `curl -fsSL https://opencode.ai/v2/install | bash`. Also available are `brew install anomalyco/tap/opencode-v2`, `npm install -g @opencode/cli`, and the desktop app via `brew install --cask opencode-desktop`.
The first version, if installed through a package manager, must be removed manually before installation. V1 plugins do not run in V2: neither moving the file nor renaming the config entry helps. The terminal config migrates from `tui.json` to the shared `cli.json` automatically.
As of 22.09.2026, V2 is still in beta: the AUR package is explicitly named `opencode-beta`, and bun requires the `--trust` flag. The V1 branch continues to ship releases, with v1.18.32 released on 21.09.2026.
While V1 plugins do not run in V2, the extensions ecosystem lives in two branches at once.
Source
