Skip to main content
@coder is the engineering suite used by Coder Mode (/coder). It provides actions for reading/searching files, safely applying patches, running commands, and reverting changes.
@coder is a builtin plugin — it comes embedded in the ChatCLI binary and works immediately, without installation. If you need a custom version, simply place the binary in ~/.chatcli/plugins/ and it will take precedence over the builtin. When removed, the builtin returns automatically on the next /plugin reload.

Supported Commands

The supported commands are (in the args attribute format of <tool_call> or direct usage). JSON in args is recommended, for example: args="{\"cmd\":\"read\",\"args\":{\"file\":\"README.md\"}}".
  • tree --dir . — Lists the directory structure
  • search --term "x" --dir . — Searches for patterns in files
  • read --file path — Reads the contents of a file
  • write --file path --content "base64" --encoding base64 — Writes a file (content in base64, single line)
  • patch --file path --search "base64" --replace "base64" --encoding base64 — Patch via search/replace (base64 to avoid escape issues)
  • patch --diff "base64" --diff-encoding base64 — Patch via diff (multiple sections)
  • exec --cmd "command" — Executes a command in the shell
  • test --dir . (or --cmd "command") — Runs tests
  • git-status --dir . — Repository status
  • git-diff --dir . — Pending differences
  • git-log --dir . — Commit history
  • git-changed --dir . — Changed files
  • git-branch --dir . — Repository branches
  • rollback --file path — Reverts a change that generated a backup (.bak)
  • clean --dir . — Removes .bak backups (dry-run by default, use --force)

Rollback and Safety

Rollback

Use rollback --file x to revert a change that generated a backup (e.g., .bak file).

Cleanup

Use clean --dir . to remove .bak backups (dry-run by default, use --force).

Usage Example (in /coder)

In /coder mode, the assistant should respond with a reasoning block followed by only one tool_call. These are valid examples:
<!-- Read ONE file (JSON) -->
<tool_call name="@coder" args='{"cmd":"read","args":{"file":"README.md"}}'/>

<!-- Run tests (auto) -->
<tool_call name="@coder" args='{"cmd":"test","args":{"dir":"."}}'/>

<!-- View diff -->
<tool_call name="@coder" args='{"cmd":"git-diff","args":{"dir":".","stat":true}}'/>

Notes

@coder grants read/write power over files and command execution, all subject to rollback when requested. Use in trusted repositories.
Being builtin, @coder appears in /plugin list with the [builtin] tag. It cannot be uninstalled via /plugin uninstall.

Plugin @coder FAQ

Yes. The recommended format is JSON. Example:
<tool_call name="@coder" args='{"cmd":"read","args":{"file":"README.md"}}'/>
Use it when you need to apply multiple sections or when simple search/replace is not sufficient. The diff can be text or base64.
@coder exec blocks dangerous patterns by default. Use --allow-unsafe only when necessary and with supervision.
Yes. Use read --max-bytes, --head, or --tail to avoid very large outputs.