Skip to content

Repository files navigation

OpenPlus

A pure-Go, terminal-native coding agent.
Anthropic and OpenAI-compatible models · persistent memory · LSP code intelligence · MCP tools.

version status go platforms license


Alpha. v0.0.1-alpha is the first tagged build. The architecture is settled and the test suite is green, but interfaces may still move and it has seen little real-world mileage. See Status for what is proven and what is not.

Install

curl -fsSL https://raw.githubusercontent.com/7-solutions/openplus/main/scripts/install.sh | sh

Works on Linux and WSL2 (arm64 and amd64, glibc) and macOS on Apple Silicon (arm64). The script detects your platform, verifies the SHA-256 checksum, and installs to ~/.local/bin (or /usr/local/bin when writable). Anything else — Intel macOS, musl, native Windows — is refused with the reason.

Other ways to install
# Pin a version
OPENPLUS_VERSION=v0.0.1-alpha curl -fsSL https://raw.githubusercontent.com/7-solutions/openplus/main/scripts/install.sh | sh

# Choose the directory
OPENPLUS_INSTALL=$HOME/bin curl -fsSL https://raw.githubusercontent.com/7-solutions/openplus/main/scripts/install.sh | sh

# With Go
go install github.com/7-solutions/openplus/cmd/openplus@latest

# From source
git clone https://github.com/7-solutions/openplus && cd openplus
CGO_ENABLED=0 go build -o openplus ./cmd/openplus

Native Windows is not supported. Use WSL2 and install from inside your Linux distribution.

Quickstart

# No API key needed — the scripted fake provider proves the wiring
openplus --fake -p "say hello"

# With a real model
export ANTHROPIC_API_KEY=sk-ant-...
openplus -p "explain the error handling in internal/agent/loop.go"

# Interactive TUI
openplus

Configure

OpenPlus reads opencode.json from your project root — the same surface OpenCode uses — plus AGENTS.md for project instructions.

{
  "model": "anthropic/claude-sonnet-5",
  "instructions": ["AGENTS.md"],

  "provider": {
    "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } },
    "local": {
      "options": { "baseURL": "http://localhost:11434/v1", "apiKey": "ollama" },
      "models": { "qwen2.5-coder": { "name": "Qwen2.5 Coder" } }
    }
  },

  "permission": { "bash": "ask", "write": "ask" },

  // Code intelligence — opt-in, you supply the server binary
  "lsp": {
    "enabled": true,
    "servers": { ".go": { "command": "gopls" } }
  }
}

Full reference: docs/configuration.md.

What it does

Models Anthropic Messages and any OpenAI-compatible endpoint (incl. Ollama), first-class
Tools read write edit bash glob grep, all behind a permission gate
Memory Local vector + FTS5 hybrid search with tunable RRF fusion; never leaves your machine
Code intelligence LSP: diagnostics, hover, definition, symbols, references — diagnostics fed back automatically after edits
MCP Connect any MCP server; its tools join the registry namespaced
Docs Context7 wired as a default docs source, so the model reads current library docs
Orchestration Parallel subagents in isolated git worktrees, JS workflows, best-of-N with a judge
Self-improvement /dream mines session traces into memory; /distill turns repeated work into skills

LSP in one minute

go install golang.org/x/tools/gopls@latest
{ "lsp": { "enabled": true, "servers": { ".go": { "command": "gopls" } } } }

Now the agent sees compiler errors in files it edits, without being asked, and can call lsp_hover, lsp_definition, lsp_symbols, and lsp_references directly. Servers start lazily on first use; a missing binary is a warning, never a crash.

Commands

/help lists everything. Highlights:

Command Does
/docs <library> Fetch current library documentation (Context7)
/compose <feature> Spec → implement → verify → review pipeline
/subagents <prompts> Run work in parallel, isolated git worktrees
/max [n] <prompt> Best-of-N sampling with a judge
/dream · /distill Mine this session into durable memory or a reusable skill
/workflow <name> Run a Go or JavaScript workflow
/theme Switch color theme (color-vision aware)

Full list: docs/commands.md.

Status

Alpha. Honest accounting of where this stands:

Proven

  • 27 packages, go test ./... green, -race clean

  • CGO_ENABLED=0 build gate enforced in CI

  • Architecture guarded by regression tests, not convention — six of them, including two that fail the build if a wire type crosses a port boundary

  • LSP verified end to end against a real gopls

  • darwin/arm64 soak-tested on real Apple Silicon: five consecutive CI runs, which is how the one flaky test in the suite was found and fixed

Not yet proven

  • Little real-world mileage. Interfaces may move before v0.1.0.
  • linux/arm64 is cross-compiled and never executed in CI — of the three published artifacts it is the one with no runtime coverage.

Not built (deliberately deferred, each needs its own decision record): voice input, MCP marketplace, web/share UI, hosted multi-tenant mode, LSP server auto-install.

Supported platforms

Three published artifacts, and nothing else:

Platform Architectures
Linux (glibc) — Ubuntu, Fedora, Debian, openSUSE, Arch, NixOS arm64, amd64
WSL2 (uses the Linux artifacts) arm64, amd64
macOS — Apple Silicon arm64

macOS on Intel is not supported: nothing in CI runs an Intel Mac, so the artifact would be an untested claim. musl systems such as Alpine are out of scope — Linux builds target glibc. Native Windows is not supported; use WSL2. In all three cases the installer refuses with the actual reason instead of failing later. NixOS needs nix-ld, which the installer detects and explains. Details in docs/install.md.

Architecture

Ports and adapters, enforced rather than encouraged. The core depends on eleven port interfaces in internal/ports/; every external system is an adapter behind one.

internal/ports/        the eleven seams + neutral types (no wire type may cross)
  providerfake/        scripted provider for tests
internal/provider/     adapter-only: anthropic · openaicompat · select · sse
internal/lsp/          LSP adapter: client · manager · wire  (only place LSP is known)
internal/memory/       Turso vector + modernc FTS5 shadow, RRF fusion
internal/agent/        the turn loop
internal/runtime/      composition root: ports → adapters
internal/tui/          Bubble Tea front-end

Two hard rules carry regression tests that fail the build when violated:

  • Core depends on ports, not adaptersinternal/ports/leak_guard_test.go
  • No wire type crosses a seaminternal/ports/lsp_leak_guard_test.go

Decisions live in docs/adr/; specs and change history in openspec/. Start with AGENTS.md — it is the single source of truth for how this project is built.

Contributing

The build gate is mandatory and spec-first: an approved OpenSpec change (openspec/changes/<id>/) exists before any code, tests are written red first, and every architectural rule ships with the test that enforces it. Read AGENTS.md before starting.

go build ./... && CGO_ENABLED=0 go build ./...
go test ./... && go test -race ./internal/...
go vet ./...

Documentation

License

Apache License 2.0 — Copyright 2026 7 Solutions.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages