Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opencodeR

Rust port of the OpenCode AI coding agent.

License: MIT

opencodeR is a full-featured HTTP API server and CLI client for AI-assisted coding, rewritten from the original opencode TypeScript codebase into Rust. It provides the same API surface with better performance, lower memory usage, and cross-platform binaries.

Quick Start

# Download the latest release for your platform
curl -fsSL https://github.com/grave0x/opencodeR/releases/latest/download/opencodeR-x86_64-unknown-linux-gnu.tar.gz | tar xz

# Start the server
./opencodeR-server --headless --port 8081

# In another terminal, run a prompt
./opencodeR run "Explain this codebase" --port 8081

Binaries

Binary Description Default mode
opencodeR Combined binary — server + client + TUI Classic interactive REPL
opencodeR-server HTTP API server Server dashboard TUI (--headless for headless)
opencodeR-client Remote CLI client Connects to running server (--base-url)

opencodeR (combined)

USAGE:
    opencodeR [COMMAND]

COMMANDS:
    server      Start the headless HTTP server
    client      Connect to a remote server interactively
    run         Run a one-shot prompt and exit
    tui         Launch the server dashboard TUI
    sessions    List sessions from a running server
    models      List available AI models
    providers   List configured providers
    agents      List available agents
    export      Export a session as JSON
    import      Import session data from JSON file
    completion  Generate shell completion script

opencodeR-server

# Server dashboard TUI (default)
opencodeR-server

# Headless mode
opencodeR-server --headless --port 8081 --password mysecret

opencodeR-client

# Interactive REPL
opencodeR-client --base-url http://127.0.0.1:8081

# One-shot prompt
opencodeR-client --base-url http://127.0.0.1:8081 --one-shot "Refactor this"

API Endpoints

The server implements the full opencode HTTP API:

Group Endpoints Status
Health GET /api/health
Sessions CRUD + prompt, events, history, messages, revert, interrupt, context, wait
Agents GET /api/agent
Models GET /api/model
Providers GET /api/provider/:id
Filesystem GET /api/fs/read/*path, list, find
PTY CRUD + connect token, WebSocket connect ✅ (real processes)
Events GET /api/event (SSE)
Integrations List, connect key/OAuth, attempt flow
Permissions Request/reply flow, saved rules
Questions Ask/reply/reject
Commands GET /api/command
Skills GET /api/skill
Auth Password-based Basic auth middleware

Architecture

                   ┌─────────────────────────┐
                   │   opencodeR binary       │
                   │  (CLI / TUI / Server)    │
                   └─────────┬───────────────┘
                             │
              ┌──────────────┼──────────────┐
              ▼              ▼              ▼
      ┌──────────┐   ┌──────────┐   ┌──────────┐
      │  Server  │   │  Client  │   │   TUI    │
      │  Crate   │   │  Crate   │   │  (ratatui)│
      └────┬─────┘   └────┬─────┘   └──────────┘
           │              │
           └──────┬───────┘
                  ▼
          ┌──────────────┐
          │  Core Crate  │
          │ (traits +    │
          │  in-memory)  │
          └──────┬───────┘
                 │
          ┌──────┴───────┐
          │  Schema +    │
          │  Protocol    │
          │  Crates      │
          └──────────────┘

Crate structure

Crate Purpose
opencode-r-schema Data types (session, agent, model, provider, PTY, etc.)
opencode-r-protocol HTTP routes, error types, request/response payloads
opencode-r-core Service traits + in-memory implementations
opencode-r-server Axum router, handlers, middleware (auth, access log)
opencode-r-client HTTP client library for the API
opencode-r-cli Binary entry points + TUI
opencode-r-llm LLM provider abstraction (in progress)
opencode-r-plugin Plugin system (in progress)

Building from source

git clone https://github.com/grave0x/opencodeR.git
cd opencodeR
cargo build --release --bin opencodeR --bin opencodeR-server --bin opencodeR-client

The release binaries will be in target/release/.

Cross-compilation

# Linux ARM64
cargo build --release --target aarch64-unknown-linux-gnu --bin opencodeR

# Windows
cargo build --release --target x86_64-pc-windows-msvc --bin opencodeR

Packaging

Format Location
Arch Linux packaging/arch/PKGBUILD
Debian/Ubuntu packaging/debian/
RPM (Fedora/RHEL) packaging/rpm/opencodeR.spec
Cargo cargo install opencode-r-cli

Configuration

Environment variable Default Description
OPENCODE_PORT 8081 Server port
OPENCODE_PASSWORD (none) Enable Basic auth
OPENCODE_BASE_URL http://127.0.0.1:8081 Server URL for client
RUST_LOG info Log level (e.g. debug, opencode_r_server=info)

Feature comparison

See features/feature-comparison.json for a detailed comparison between opencodeR and the original opencode.

See features/ROADMAP.md for the planned feature roadmap.

License

MIT — see LICENSE.

About

Rust port of the OpenCode AI coding agent — HTTP API server, CLI client, and TUI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages