Comparison with OpenCode
This page breaks down where reloaded-code overlaps with OpenCode, where it diverges, and which to pick. OpenCode excels at interactive development; reloaded-code is for embedding agent tools into your own applications.
At a glance
| Aspect | OpenCode | reloaded-code |
|---|---|---|
| What it is | A coding agent application | A coding agent library |
| Language | TypeScript | Rust |
| Runtime | Bun | Native binary / library |
| Memory | ~305 MiB RSS (Resident Set Size) | ~13 MiB RSS (Resident Set Size) |
| Interface | TUI (Terminal User Interface), Desktop, IDE | Library (no UI - headless) |
| Target user | Developer at a terminal | Developer building a server/bot/tool |
| Agent format | Markdown + YAML frontmatter | Similar format |
| Permissions | Default-allow + interactive ask | Default-deny (no interactive mode) |
| Tool set | 14 tools | 10 tools (core set) |
| LLM framework | AI SDK (TypeScript) | SerdesAI / bring your own |
| Providers | 75+ via models.dev | 75+ via models.dev |
| Sandboxing | - | Linux bubblewrap (2 profiles) |
| Embeddable | Client/server HTTP API | Rust crate (library) |
| Async | Yes (Bun) | Yes (tokio) and blocking mode |
| System prompt | ~2000+ tokens | ~2000 tokens (dynamically generated, includes only enabled tools) |
Where they overlap
-
Agent markdown format - both use a similar YAML frontmatter schema (
name,mode,description,model,permission,tool_settings). Agent files written for OpenCode are drop-in compatible (add explicit permissions). See Agents for the full format reference and Migrating from OpenCode for the differences. -
Core tools - both provide
read,write,edit,glob,grep,bash, andwebfetch. See Tools for the complete tool reference. -
models.dev - both support the models.dev catalog for provider/model lookups.
-
Multi-agent delegation - both support
tasktool delegation with recursion depth limits (how deeply agents can delegate to other agents).
Where they differ
Permissions
OpenCode uses default-allow: tools are allowed unless you explicitly deny them. It also offers an interactive ask mode that prompts the user for approval in the TUI before a tool runs.
reloaded-code uses default-deny: every tool is blocked unless you explicitly allow it in the agent frontmatter. There is no interactive approval flow because there is no user to prompt - the agent runs unattended.
See Migrating from OpenCode for a side-by-side YAML example, a portable default-deny configuration, and a migration checklist.
Interface
OpenCode is a full application with a TUI (Terminal User Interface), desktop app, VS Code extension, and HTTP API server. reloaded-code is a library with no UI. You build the interface or API layer yourself.
Framework
OpenCode is built on the Vercel AI SDK (TypeScript). reloaded-code uses SerdesAI for the ready-to-use integration, but the core is framework-agnostic so you can bring your own LLM framework. See Custom Framework Integration for details.
Sandboxing
OpenCode doesn't provide built-in sandboxing. To isolate it, you sandbox the entire process externally (containers, VMs, etc.). reloaded-code provides in-process sandboxing: each tool is sandboxed individually within your application.
Two layers are available:
-
Path resolvers - restrict which paths the file tools (
read,write,edit,glob,grep) can access. See Path resolvers for the resolver types and configuration. -
Shell sandboxing (Linux only) - sandbox
bashcommands with bubblewrap using kernel-level filesystem, network, and process isolation. Two profiles are available: Public Bot (untrusted input) and Trusted Maintenance (trusted automation).
Because sandboxing is per-tool, each agent or client can use a different configuration. See Sandboxing for the full guide.
Features unique to OpenCode
- TUI / desktop app / IDE extensions (notifications, themes, keybindings)
- Interactive permission prompts (
askmode) - LSP (Language Server Protocol) integration
- Session sharing (share live agent sessions with other users)
Features unique to reloaded-code
- In-process sandboxing: path resolvers + shell sandboxing (bubblewrap)
- Framework-agnostic core (bring your own LLM framework)
- Embeddable inside any process
- Low memory footprint (~10 MiB PSS, all providers enabled)
Ready to get started? See Getting Started or Migrating from OpenCode.