Ogcode
The open-source, self-hostable AI coding agent that understands your codebase, uses real tools, remembers decisions, and ships changes — on your machine, with your models.
- Source repo
- prasenjeet-symon/ogcode
- Stars
- ★ 143
- Last updated
- 1d ago
- License
- AGPL-3.0
- Primary language
- Go
- FA score
- 46/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformOpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A developer onboarding onto an unfamiliar codebase: have Ogcode map the project and outline files with exact line ranges instead of manually reading everything.
- Not a fit if
- Teams embedding it in proprietary products without buying the commercial license (AGPL-3.0 requires source disclosure for network use)
- Users unwilling to pay model API costs or run a local Ollama endpoint
- Source review
- 46/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
Ogcode is an open-source (AGPL-3.0, with a commercial license option), local-first AI coding agent and agent operating environment written in Go, operated through a browser interface served at http://localhost:9595. Before touching code, it maps the project and reads files by exact line ranges, keeping context tight and token cost low. It implements features across files, runs builds and tests, and investigates failures instead of retrying blindly, and can break objectives into tasks, run independent ones in parallel, and open pull requests for review. It pairs a memory system that recalls past decisions with reusable SKILL.md workflows, external MCP servers, built-in web search, and rich output including Mermaid diagrams, LaTeX, Plotly charts, and sandboxed HTML. Models are configured via environment variables or ogcode.json, supporting Anthropic, OpenAI, OpenRouter, and key-free local models through Ollama. Permissions are chosen per session — Ask, Auto, or Yolo — and deployment options include Docker plus documented remote-access boundaries such as SSH tunnels, authenticated reverse proxies, and VPNs.
Running ogcode serves the web UI at http://localhost:9595. The workflow: it first maps the project structure, then selectively reads files by exact line ranges to keep context focused; it then edits code across files, executes build and test commands, and investigates failures when they occur. It can turn an objective into tasks, run independent tasks in parallel, and open pull requests for review. Its memory recalls past decisions instead of replaying the full transcript, keeping long sessions affordable. It performs built-in web search and page reading, executes reusable SKILL.md skill workflows, connects to external MCP servers, and renders Mermaid diagrams, LaTeX, PDFs, Plotly charts, and sandboxed HTML with downloadable artifacts. Providers are detected from environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, OLLAMA_BASE_URL) or from ogcode.json / ~/.config/ogcode/config.json, with environment variables taking precedence. Every tool execution is gated by a per-session permission mode: Ask (approve each step), Auto (risk-gated), or Yolo (no prompts).
- A developer onboarding onto an unfamiliar codebase: have Ogcode map the project and outline files with exact line ranges instead of manually reading everything.
- An engineer delivering a whole feature: split the objective into tasks, run independent ones in parallel, and open pull requests for review.
- A privacy-conscious team: run with Ollama so code and session data stay local with no API key.
- A developer debugging flaky builds: let the agent run tests and investigate failures rather than retrying blindly.
- A user on a remote server: reach a deployed instance through an SSH tunnel, authenticated reverse proxy, or VPN from the browser.
- A team standardizing workflows: capture repeatable processes as SKILL.md files with per-skill permissions (e.g. deploy-prod set to ask).
How do you install or deploy this agent?
One-line install script:
curl -fsSL https://ogcode.in/install.sh | shOr via package managers:
brew tap prasenjeet-symon/tap && brew install ogcodewinget install prasenjeet-symon.ogcodeOn Windows without winget:
irm https://ogcode.in/install.ps1 | iexOn any OS with Go:
go install github.com/prasenjeet-symon/ogcode@latestBuilding from source requires CGO_ENABLED=1 (the Swift tree-sitter binding is cgo). Alternatively run the container:
docker run -p 9595:9595 \
-v ~/.ogcode:/root/.ogcode \
-v "$(pwd):/workspace" -w /workspace \
ghcr.io/prasenjeet-symon/ogcode:latestThe image is also on Docker Hub as prasenjeetsimon/ogcode:latest.
How do you use this agent?
Set at least one provider environment variable:
export ANTHROPIC_API_KEY=sk-ant-...Or use a local model with no API key:
ollama serve
ogcodeStart it and open the web interface:
ogcode # serves the UI on http://localhost:9595Project settings live in ogcode.json at the project root, global settings in ~/.config/ogcode/config.json; environment variables override both:
{
"providers": {
"ollama": { "baseUrl": "http://localhost:11434" },
"anthropic": { "apiKey": "sk-ant-..." }
},
"skills": {
"paths": ["./team-skills"],
"permissions": { "deploy-prod": "ask" }
}
}Pick a permission mode per session: Ask (approve each step), Auto (risk-gated), or Yolo (no prompts). For remote deployment, never expose the server unauthenticated; a recommended boundary is an SSH tunnel:
ssh -L 9595:localhost:9595 user@your-serverOG Lab's OGX subscription plan can also be connected from the settings screen; its models run through OG Lab's gateway with no environment variable needed.
What are this agent's strengths and limitations?
- Local-first by design: code and session data stay on your machine; only conversation content goes to the provider you configure, and Ollama enables fully key-free local operation.
- Token-efficiency architecture: it maps projects and reads files by exact line ranges, and its memory recalls decisions instead of replaying full transcripts.
- Granular control: per-session Ask / Auto / Yolo permission modes plus per-skill permissions (e.g. deploy-prod set to ask).
- Complete deployment story: brew / winget / Go / Docker install paths, a remote deployment guide (SSH tunnel, reverse proxy, VPN), and control-plane docs for hosted multi-user setups.
- The license changed to AGPL-3.0-only from v0.37.0: running a modified version over a network triggers source-disclosure obligations, and embedding in proprietary products requires the commercial license — assess before migrating.
- Source builds require CGO_ENABLED=1 due to the Swift tree-sitter cgo binding, an extra constraint for pure-Go build environments.
- You must supply model access yourself: either paid API keys (Anthropic/OpenAI/OpenRouter) or your own Ollama instance.
- Remote deployment carries real risk: the agent can read/modify files and run commands, and the docs explicitly warn against unauthenticated public exposure — you must build the SSH/reverse-proxy/VPN boundary yourself.
How does this agent compare with similar options?
The README names no specific competitors, but its positioning — 'the open-source, self-hostable AI coding agent' — differentiates it from hosted coding assistants on three documented axes: you choose the model (including key-free local Ollama), your code and session data stay local, and execution is governed by per-session Ask/Auto/Yolo permissions with documented remote-deployment boundaries.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Ogcode This agent | 46 · Major gaps | CLIFree + model costs | ★ 143 | 1d ago | Go | OpenAI API · Claude API |
| iPolloWork | 44 · Major gaps | Desktop appFree + model costs | ★ 7.1k | 3d ago | TypeScript | — |
| Synapse AI — Multi-Agent Orchestration Platform | 70 · Some gaps | CLIFree + model costs | ★ 329 | 2mo ago | Python | OpenAI API · Claude API |
| Busabase | 51 · Major gaps | CLIFreemium | ★ 544 | today | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
README asserts per-session permission tiers (Ask/Auto/Yolo), risk gating, and secret hygiene, but no implementation code for permissions or approval is present in the supplied files, so these are unsupported claims (1 each). Data-flow transparency is one sentence ('only conversation content is sent to the provider') without code evidence. No evidence at all of a rollback/undo mechanism — scored 0. Dependencies are pinned in go.mod but no audit or update policy is shown. Source attribution is solid: full AGPL text plus referenced THIRD_PARTY_NOTICES.md and LICENSING.md. No malware, exfiltration, or disproportionate defaults found; no red-line issue.
CI builds and runs `go test ./...` on every push, and Docker publishes are smoke-tested (version-output check) with pinned dependencies — buildability is adequately evidenced (2). However, test content and failure-message handling are invisible, so self-consistency and failure messages remain assertion-level (1).
The self-hosted developer scenario is clearly described with multiple install channels (brew/winget/go/docker), amd64/arm64 images, and multiple providers (Anthropic/OpenAI/OpenRouter/Ollama) — environment fit 2. Capability boundaries (failure modes, model requirements) and trigger precision are marketing-level only, with no detail (1).
Install notes are thorough including cgo caveats, containers, and remote-deployment boundaries (3). The AGPL-3.0 text is in-repo with a clear dual-license and a version switch point (v0.36.1 MIT / v0.37.0+ AGPL) (3). Documentation structure is linked coherently (2). Examples/FAQ/known-limitations exist only as external-link assertions; no CHANGELOG file is visible; maintenance responsibility lacks CONTRIBUTING content to verify (1 each).
The local-first, permission-gated positioning with memory/planning/skills/MCP is a distinguishable offering (marginal value 2); Ollama local-model support and context compaction support cost-benefit (2). Output usability beyond screenshots/rich-preview claims has no implementation detail (1).
README claims cross-corroborate with go.mod, ci.yml, and docker.yml (2); factual vs. promotional language is reasonably separable (2); but the core security/permission claims cannot be traced to any code in the supplied evidence (1).
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- This rating is a static review of README, LICENSE, go.mod, and CI workflows only; the security claims (permission approval, rollback, data flow) are not corroborated by any implementation code — audit the source before use.
- The product offers a Yolo mode (no confirmation) and can read/write files and run shell commands; never expose the server unauthenticated to the public internet and run high-risk work only in isolated environments (Docker/VM).
- curl | sh installation plus an unverified publisher means supply-chain trust rests entirely on repository contents; AGPL-3.0 applies from v0.37.0 — review the dual-license terms before commercial or hosted use.
- No CHANGELOG and no visible test content; release quality and regression risk cannot be assessed statically.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Release Notes — v0.48.0 Minor: The interface comes in light and dark Ogcode now has a light interface alongside the dark one it has always worn, and a Theme control in Settings → General to choose between them. The three options are Light, Dark, and System; System follows your operating system and switches live as your machine does, so a laptop that dims itself in the evening takes the app with it. Whatever you pick applies to the whole machine — every browser tab and every window — because the choice is kept by the server, not by one tab. The …View on GitHub ↗ -
Release notes excerpt
Release Notes — v0.47.4 Patch: Compaction keeps the prompt you started the turn with When a turn folded its context with compact_context, the message the turn opened with — what you asked for, and any image you attached — could fall out of the model's view. The summary took its place. Everything the agent did after that point was working from a digest of your request instead of the request itself. The fold now keeps your original prompt, images included, at the head of what is sent, with the summary folded in beneath it. If the turn is compacted again …View on GitHub ↗ -
Release notes excerpt
Release Notes — v0.47.3 Patch: Browser-backed search finishes what it starts Deep research fetches its chosen pages under one shared time budget, and the browser fallback was landing on the wrong side of it: the budget expired at the same instant an ordinary HTTP fetch timed out, so a page that needed a browser to render never got fetched. The window is now wide enough for the fallback to render and extract the page. On macOS that fallback is headless Chromium — Chrome, Chromium, Brave, or Edge, whichever is installed — with Safari kept only for a machine that has none of …View on GitHub ↗
FAQ
Do I have to pay to use it?
Can it run without any API key?
ollama serve), then run ogcode; it uses the local model via OLLAMA_BASE_URL or the default local endpoint, with no API key required.