● LIVE  ·  v2.1.0  ·  Linux & macOS & Windows  ·  x86-64

Coding
Sidekick

// CSK

A terminal-native coding agent that writes, edits, debugs and tests real code — the hands-on pair-programmer that lives in your repo, not a linter on the sidelines. It runs your build-and-test loop until it's green, navigates by symbol via LSP, and talks to any model — Claude, GPT, Gemini or a local Ollama box. One static Rust binary.

Status● Live
Version2.1.0
PlatformLinux · macOS · Windows
Archx86-64 · ARM64
InterfaceTUI · CLI · Web GUI
ModelsClaude · GPT · Gemini · Ollama
TelemetryNone · keys stay local
Eyes & Hands, Not Just wget

A text-only agent can only wget a URL — it gets an empty SPA shell and goes blind. CSK drives a real Chromium on the target, logs in, and sees the rendered page — then snapshots whole VNC / RDP desktops an SSH-only agent can never reach.

CSK · DEMO REEL
TEXT-ONLY AGENT · WGET
Empty shell · 0 rendered nodes
Fetches raw bytes. JavaScript never runs, so it can't log in or read the app.
CSK · REAL CHROMIUM
Renders · logs in · sees
Playwright-driven browser — DOM-aware, auto-waiting, reads the rendered result.
CSK · /see VNC · RDP
Snapshots the whole desktop
local · SSH host · web · VNC · RDP via guacd — captured to a PNG the model reasons over.
ANY MODEL
Claude · GPT · Gemini · local
The eyes & hands are CSK's — the same capabilities on whatever model you point it at.
See It In Action
CSK · build / test / fix loop
csk> cs exec "add exponential backoff to the API client and make the tests pass" 💭 planning · reading client.rs, retry.rs [tool] edit src/client.rs +14 −3 [tool] bash cargo test FAILED retry::backoff_caps_at_max (1 failed, 41 passed) [tool] edit src/retry.rs +6 −1 [tool] bash cargo test ✓ 42 passed · 0 failed ✓ done — backoff added, all tests green (7 steps)
CSK · cs pm — scope → plan
csk> cs pm scope "add SSO login (SAML + SCIM) to the portal"
SCOPE.mdgoal · out-of-scope · acceptance criteriaLOCKED ✓
WBS① SAML handshake ② SCIM sync ③ portal UI ④ tests
TASKS.md12 tasks · 3 lanes · gated on scope
every cs chat / cs exec now runs inside the plan — scoping assist keeps the agent on-rails.
CSK · cs conductor — one repo, many agents
WORKERS · SKILL-ROUTED · COST-TIER AWARE
Claude Sonnetarchitecture · hard-debugcloud
Qwen2.5-coderimplement · refactorlocal · free
GPT-4odocs · translatecloud
Geminianalysis · diagramscloud
MESH WireGuard · 3 machines (office · home · cloud)
task "add retry" routed to Qwen2.5-coder (local, tier 1)
CSK · cs tools — coverage
312TOOLS · ONE AGENT
files · editshell + bgripgrep · globLSP navgit · PRRAGbuild · CIbrowserremote · RDPadb · serial · JTAGdbsecurity · SBOMMCP proxyvoice · media
✓ Full Claude Code tool parity (read · edit · bash · grep · task · plan · hooks · MCP) → then past the editor.
What CSK Does
✍️
Writes & Edits Your Code
Reads, writes and makes exact, previewable edits across the tree — see the diff before it lands — backed by shell, ripgrep, glob and a live file tree. The hands that actually change your repo.
🔁
Build / Test / Fix Loop
Runs your build and test suite through the shell, reads the failures, patches the code and re-runs — up to 50 tool-steps a turn — iterating until it's green. Plan mode first if you want to approve the steps.
🧭
Navigates by Symbol, Not Text
LSP-powered go-to-definition, find-references, hover types and workspace symbol search — rust-analyzer, gopls, pyright, tsserver and any LSP server — so changes hit real call sites, not comments.
🧠
Understands Big Repos
Semantic RAG retrieval over the whole workspace, full-text recall of past sessions and durable per-project memory — context that survives beyond a single chat.
🔌
Any Model, One Binary
Claude, GPT, Gemini or a local Ollama / vLLM box behind one interface — route architecture to your smartest model and bulk work to a free local one. A single static Rust binary: no Node, no Python, no runtime.
👥
A Whole Team of Agents
Skill-routed workers, a WireGuard mesh and multi-instance conductor coordinate many agents across many machines on one repo — office, home and cloud boxes pulling on the same codebase.
👁️
Eyes & Hands Beyond the Editor
Drives a real Chromium (Playwright), snapshots remote VNC / RDP desktops, and reaches Android (adb), serial consoles and JTAG/SWD firmware (probe-rs) — verify code where it actually runs.
🛡️
Security Built In, Not Bolted On
One command scans for CVEs, hardcoded secrets and CWE / OWASP patterns and generates an SBOM — supply-chain aware by default, plus a startup IOC scan and prompt-injection guard.
CSK vs. The Field
Capability CSK Claude Code Cursor GitHub Copilot
Any model — Claude · GPT · Gemini✓ native✓ via config
Runs local · hybrid · or fully cloud (Ollama · vLLM)✓ all threeLocal via config
Terminal-native · headless for CI✗ EditorPartial
Single static binary — no Node / Python✗ Node✗ Electron✗ Extension
LSP symbol navigationVia tools
Build / test / fix agent loopAgent mode
Browser · remote · RDP "eyes"
Multi-instance mesh / agent team
Hardware — adb · serial · JTAG/SWD
Security scan + SBOM built inVia prompt
Price-NA-$$ subscription$20+/mo$10+/mo

✓ = supported · ✗ = not supported · partial = limited or requires extra config. Comparison based on public documentation, 2026; capabilities evolve.

Three-Provider Setup

CS can route different tasks to the best AI for the job: Claude for code, ChatGPT for documentation, Gemini for analysis and diagrams. Add [[chat_backends]] entries with skill tags and CS picks the right backend automatically.

PRIMARY
Claude
Code review, bug fixes, architecture, tool use. Auto-detected from your Claude Code browser session — no key needed.
Skills: coding · tools · chat
SECONDARY
ChatGPT
API docs, technical writing, translations. Uses your OpenAI API key from OPENAI_API_KEY.
Skills: documentation · writing · translate
SECONDARY
Gemini
Research, analysis, diagrams and image generation. Uses your Gemini API key from GEMINI_API_KEY.
Skills: analysis · research · drawing · diagram
Step 1 — Get Your API Keys
Claude   No key needed — just run claude (Claude Code) once in your browser to create the session at ~/.claude/.credentials.json. CS picks it up automatically.
OpenAI  Go to platform.openai.com/api-keys → Create new secret key → copy it, then: export OPENAI_API_KEY="sk-proj-…"
Gemini  Go to aistudio.google.com/app/apikey → Get API key → Create API key → copy it, then: export GEMINI_API_KEY="AIza…"
Step 2 — Create opencode.toml (or coding-sidekick.toml) in your project root
opencode.toml
# Primary: Claude — auto-detected from ~/.claude/.credentials.json
default_provider = "anthropic"
default_skills   = ["coding", "tools", "chat"]

[providers.anthropic]
model = "claude-sonnet-4-6"

# OpenAI — key from OPENAI_API_KEY environment variable
[providers.openai]
api_key_env = "OPENAI_API_KEY"
model       = "gpt-4o"

# Gemini — key from GEMINI_API_KEY environment variable
[providers.gemini]
api_key_env = "GEMINI_API_KEY"
model       = "gemini-2.0-flash"

# Skill routing: GPT-4o handles writing tasks
[[chat_backends]]
id          = "gpt-docs"
provider    = "openai"
model       = "gpt-4o"
api_key_env = "OPENAI_API_KEY"
skills      = ["documentation", "writing", "translate", "chat"]
cost_tier   = 1

# Gemini handles research and analysis
[[chat_backends]]
id          = "gemini-analysis"
provider    = "gemini"
model       = "gemini-2.0-flash"
api_key_env = "GEMINI_API_KEY"
skills      = ["analysis", "research", "summarise", "chat"]
cost_tier   = 1

# Gemini image generation — diagrams, mockups
[[imagegen_backends]]
kind        = "gemini"
model       = "imagen-3.0-generate-002"
api_key_env = "GEMINI_API_KEY"
skills      = ["drawing", "diagram", "image", "mockup"]
cost_tier   = 1

# If Claude 429s, fall over to GPT, then Gemini
on_rate_limit = "shift_then_wait"
Step 3 — Use Skill Routing
CLI
# Code review → Claude (default)
cs exec "review auth.rs for security issues"

# Write docs → GPT-4o
cs --skill documentation exec "write the API reference for users endpoint"

# Analyse logs → Gemini
cs --skill analysis exec "summarise this week's error logs"

# Draw diagram → Gemini imagen
cs --skill drawing exec "draw a sequence diagram for the OAuth flow"
TUI
# Switch mid-session (status bar shows active skill)
/skill documentation     # → GPT-4o
/skill analysis          # → Gemini
/skill coding            # → Claude
/skill off               # → back to default
Tip: on_rate_limit = "shift_then_wait" means if Claude hits its rate limit, CS automatically falls over to GPT-4o, then Gemini — no interruption. Skills also work across mesh nodes (see cs mesh) so a remote build server can serve --skill mac-build from your laptop.
Licensing paused. Due to a general lack of engagement, this project has gone private. Already-issued licenses will continue to work, but no new licenses will be issued to the general public at this point in time.
Available Now — v2.1.0
Download the binary and grab a licence to unlock all features. Supports Anthropic, OpenAI, Gemini, and local Ollama models.