contenox

module
v0.40.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2026 License: Apache-2.0

README

contenox

Fire work at an agent, under rules you can read.

An open agentic harness, built around the envelope: a plain file that bounds what an agent may do unattended — tool allowlists, command policy, budgets, approval gates. Missions are what envelopes make safe: fire one from a persistent session, detach, come back to done. Envelopes survive restarts — an unanswered approval checkpoints the run; answer it later with contenox approvals respond, from any terminal that can reach your models, and the run resumes exactly once. Terminal CLI, the same sessions inside Zed, JetBrains, or any ACP editor, and contenox new — a full-screen TUI with chat, plan, shell, and editor-grade file tools in one persistent coding session. Any model, any MCP server, any OpenAPI spec as tools, in combination. SQLite. No account.

The old way contenox
A hidden prompt A file you edit
Guessing the blast radius An envelope you wrote
Watching it work Detached missions
One vendor Any model, any MCP, together

We don't build toward one model with standing access to everything. You declare the agent with exactly what it needs — the tools, the model, the budget, the approval gate — nothing implied, nothing assumed.

Docs: contenox.com


How it compares

Most of what contenox does, the dedicated coding agents also do: a chat loop with tools, tool calling, MCP servers, provider switching, ACP editor sessions, sessions in local SQLite, a terminal UI. contenox new is a real coding session — chat, plan, shell, and editor-grade file tools in one persistent full-screen UI. Aider, OpenCode, Kilo Code and Claude Code all ship that set, and for pure coding ergonomics — repo mapping, diff application, edit formats — they are more refined. That part is table stakes, not the argument.

Three things are built differently:

  • The envelope is a separate artifact from the workflow. The chain says what happens; the envelope says what is permitted. Two files, authored and versioned independently, both checked by contenox vet, evaluated before every tool call, fail-closed when nothing matches. Hand someone a chain and keep the policy; tighten the policy without touching the workflow.
  • Human gates are durable. An unanswered approval checkpoints the run and releases its process. Answer it days later from another terminal with contenox approvals respond; the verdict is recorded once by a compare-and-swap and the checkpoint is claimed before the run rebuilds. The closest analog is workflow infrastructure, not a dev tool.
  • Delegation is bounded and attributed. An envelope may grant an agent a fixed number of answers to another agent's questions. The budget is durable, your own answers don't spend it, and the record shows who answered.

The cost: the weakest surfaces are the ones you meet first, kernel-enforced sandboxing is Landlock and Linux-only, and all three differences pay off on day thirty rather than day one. The long version, with the mechanisms and the rest of the caveats: How contenox compares.


Install

curl -fsSL https://contenox.com/install.sh | sh

Prefer to read it first?

curl -fsSLO https://contenox.com/install.sh
less install.sh
sh install.sh

Pre-built release downloads and source builds are also available on the releases page.


Quick Start

contenox setup                          # pick a provider and model, once
contenox "say hello world in python"    # chat straight from the CLI
contenox chat -e                        # compose a rich prompt in $EDITOR
contenox new                            # full-screen TUI: chat, plan, shell, file edits
contenox resume                         # same TUI, reopening your last session

new always starts a fresh session; resume replays the last active one (or --session <name>). Sessions persist — contenox session list and contenox session switch <name> pick past contexts back up. That's it; sensible defaults do the rest, and contenox doctor explains itself when something is missing.

Everything above is local: SQLite on your machine, no account. When you do want a running session reachable from elsewhere — reading the transcript and answering approvals from your phone — pair the machine with the hosted relay: sign in at app.contenox.com, tap Pair device, and type the key into the session as /pair <key>. Free for you and three teammates (one machine each), opt-in per machine, and an install that never pairs contacts no relay at all. How pairing works.


What people use it for

  • Running standing, scheduled agents: declare a narrow agent once — triage this inbox, watch this feed — and call it from cron or CI every morning; it starts clean each run and never carries yesterday's job into today's.
  • Reviewing diffs: run tests, summarize risks, and keep destructive operations behind an approval prompt.
  • Drafting release evidence: aggregate git logs, PRs, tickets, and CI output into changelogs and reviewer packets.
  • Wrapping internal APIs: expose a curated subset of an OpenAPI spec as a tool, with the sensitive arguments filled in by config, not by the model.
  • Automating repo chores: ingest an issue, generate a patch, run local checks, draft the PR description.
  • Inspecting live operations: query dashboards, shell scripts, or MCP tools through tightly scoped policies instead of broad credentials.

The unit of repeatability is the Chain: a declarative, version-controlled file that defines prompts, model routing, tools, retries, branching, and where a human gets the final word. The same chain runs identically in the terminal, in headless scripts, and inside any ACP editor.


Connect your stack

Anything reachable via an MCP server, an OpenAPI spec, or a shell command can become a tool in a chain:

# Connect any Model Context Protocol (MCP) server
contenox mcp add notion https://mcp.notion.com/mcp --auth-type oauth

# Wrap an internal HTTP API using its OpenAPI specification
contenox tools add erp_billing \
  --url https://erp.internal.example.com \
  --spec ./billing-subset.yaml

# Bind the local shell under a chain policy
contenox --shell "check Proxmox and flag anything red"

Editor integration

Contenox speaks the Agent Client Protocol (ACP) over standard I/O — one harness behind every editor session.

Zed

Add to ~/.config/zed/settings.json:

{
  "agent_servers": {
    "Contenox": {
      "type": "custom",
      "command": "contenox",
      "args": ["acp"]
    }
  }
}

Tool invocations render as interactive cards, approval prompts hook into the editor's native permission UI, and session history replays when you reopen a project.

Step-by-step guides: Zed | JetBrains | AionUi | OpenClaw.

Terminal. Editor. Contenox.


Backends

Model routing is configuration, not code. Mix local and hosted freely:

# Local & private-network inference
contenox backend add ollama --type ollama
contenox backend add myvllm --type vllm --url http://gpu-host:8000

# Hosted providers
contenox backend add openai    --type openai    --api-key-env OPENAI_API_KEY
contenox backend add anthropic --type anthropic --api-key-env ANTHROPIC_API_KEY
contenox backend add gemini    --type gemini    --api-key-env GEMINI_API_KEY

# Defaults
contenox config set default-provider ollama
contenox config set default-model    qwen2.5:7b

Also supported: Gemini, Vertex AI, and Amazon Bedrock.


Guardrails, without the nagging

Defaults are safe so you don't have to think about them: gated actions ask a human first (in the terminal or your editor's permission UI), and every session leaves reviewable local state. Approval policies are yours to author — loosen or tighten per chain, and the harness stays out of your way everywhere else.

Know exactly what that gate is. Everything you run today — chat, run, new, an editor acp session, and the mission units the fleet dispatches — is contenox's own chains in contenox's own process, bounded by the approval gate and the chain's tool policy. That is a gate at the tool layer, not a kernel sandbox: their shells are ordinary child processes and inherit the runtime's environment. The sandbox — Landlock-enforced filesystem and exec confinement, scrubbed environment, Linux-only and fail-closed — is what confines a foreign agent, code contenox did not write; registering one is not exposed yet, so nothing on a stock install takes that path.


Building from source

The CLI is pure Go — no C toolchain, no native dependencies.

git clone https://github.com/contenox/contenox
cd contenox
task build        # https://taskfile.dev — or: CGO_ENABLED=0 go build ./cmd/contenox

Questions? Reach out at hello@contenox.com

Directories

Path Synopsis
cmd
contenox command
Contenox CLI: run task chains locally with SQLite-backed state.
Contenox CLI: run task chains locally with SQLite-backed state.
core module
internal
kernel/agentinstance
Package agentinstance spawns and owns running ACP agent instances on a server-rooted context, independent of any client connection, and lets multiple viewers attach to a session's event stream.
Package agentinstance spawns and owns running ACP agent instances on a server-rooted context, independent of any client connection, and lets multiple viewers attach to a session's event stream.
kernel/nativeturn
Package nativeturn is the serve-level survival layer for native ACP chain turns: it runs an in-flight turn on a serve-rooted Registry, off any single connection, so a dropped connection detaches a viewer without cancelling the turn.
Package nativeturn is the serve-level survival layer for native ACP chain turns: it runs an in-flight turn on a serve-rooted Registry, off any single connection, so a dropped connection detaches a viewer without cancelling the turn.
kernel/taskengine
Package taskengine orchestrates an agent: it drives LLM turns, tool calls, and routing in a loop, defined as a JSON chain you version in git.
Package taskengine orchestrates an agent: it drives LLM turns, tool calls, and routing in a loop, defined as a JSON chain you version in git.
kernel/taskengine/llmretry
Package llmretry wraps a single LLM call with classified retry, exponential backoff, and an optional model fallback.
Package llmretry wraps a single LLM call with classified retry, exponential backoff, and an optional model fallback.
libsandbox
Package libsandbox confines a spawned foreign agent to "the wall": every path out of its tools and workspace — filesystem, network, environment — is absent by construction, not merely denied by policy.
Package libsandbox confines a spawned foreign agent to "the wall": every path out of its tools and workspace — filesystem, network, environment — is absent by construction, not merely denied by policy.
models/llmrepo
Package llmrepo provides a unified facade over LLM backends discovered via runtimestate: prompt, chat, streaming, embedding, and tokenization through a single ModelRepo interface.
Package llmrepo provides a unified facade over LLM backends discovered via runtimestate: prompt, chat, streaming, embedding, and tokenization through a single ModelRepo interface.
models/modelrepo
Package modelrepo defines the provider-facing contracts for LLM backends: the Provider interface, per-capability client interfaces, and shared request/response types.
Package modelrepo defines the provider-facing contracts for LLM backends: the Provider interface, per-capability client interfaces, and shared request/response types.
models/modelrepo/anthropic
Package anthropic is a direct (non-Vertex) provider for the Anthropic API (api.anthropic.com), which speaks the Messages API.
Package anthropic is a direct (non-Vertex) provider for the Anthropic API (api.anthropic.com), which speaks the Messages API.
models/modelrepo/bedrock
Package bedrock is a provider for AWS Bedrock via the unified Converse API.
Package bedrock is a provider for AWS Bedrock via the unified Converse API.
models/modelrepo/codec/chatcompletions
Package chatcompletions is a transport-agnostic codec for the OpenAI Chat Completions wire format (request/response and SSE streaming).
Package chatcompletions is a transport-agnostic codec for the OpenAI Chat Completions wire format (request/response and SSE streaming).
models/modelrepo/codec/messages
Package messages is a transport-agnostic codec for Anthropic's Messages API wire format (request, content-block response, and named-SSE-event streaming).
Package messages is a transport-agnostic codec for Anthropic's Messages API wire format (request, content-block response, and named-SSE-event streaming).
models/modelrepo/gemini
Package gemini implements the modelrepo.Provider contract against Google's Gemini Generative Language API.
Package gemini implements the modelrepo.Provider contract against Google's Gemini Generative Language API.
models/modelrepo/ollama
Package ollama implements the modelrepo.Provider contract against Ollama HTTP endpoints.
Package ollama implements the modelrepo.Provider contract against Ollama HTTP endpoints.
models/modelrepo/openai
Package openai implements the modelrepo.Provider contract against the OpenAI HTTP API and OpenAI-compatible endpoints.
Package openai implements the modelrepo.Provider contract against the OpenAI HTTP API and OpenAI-compatible endpoints.
models/modelrepo/vertex
Package vertex implements the modelrepo.Provider contract against Google Vertex AI publisher endpoints, using OAuth bearer tokens minted from service-account credentials.
Package vertex implements the modelrepo.Provider contract against Google Vertex AI publisher endpoints, using OAuth bearer tokens minted from service-account credentials.
models/modelrepo/vllm
Package vllm implements the modelrepo.Provider contract against vLLM OpenAI-compatible HTTP endpoints.
Package vllm implements the modelrepo.Provider contract against vLLM OpenAI-compatible HTTP endpoints.
models/ollamatokenizer
Package ollamatokenizer provides Tokenizer implementations used by llmrepo to count and split tokens for a given model.
Package ollamatokenizer provides Tokenizer implementations used by llmrepo to count and split tokens for a given model.
models/runtimestate
Package runtimestate reconciles the declared state of LLM backends against their observed state, read-only, intended to run repeatedly from an external background task.
Package runtimestate reconciles the declared state of LLM backends against their observed state, read-only, intended to run repeatedly from an external background task.
relayacp
Package relayacp carries ACP over a relay connection, so a remote client is just another ACP client of this runtime, routed by librelay.Frame.Session to its own libacp.AgentSideConnection.
Package relayacp carries ACP over a relay connection, so a remote client is just another ACP client of this runtime, routed by librelay.Frame.Session to its own libacp.AgentSideConnection.
relaycreds
Package relaycreds reads and writes the relay enrolment a machine obtained with `contenox login`: the instance token it authenticates with, the relay's public key it authenticates the relay with, and the endpoint both apply to.
Package relaycreds reads and writes the relay enrolment a machine obtained with `contenox login`: the instance token it authenticates with, the relay's public key it authenticates the relay with, and the endpoint both apply to.
relaylink
Package relaylink is the runtime half of the relay connection: it dials a relay, completes the librelay handshake, holds the connection, proves the peer is alive with heartbeats, and redials with backoff when it is not.
Package relaylink is the runtime half of the relay connection: it dials a relay, completes the librelay handshake, holds the connection, proves the peer is alive with heartbeats, and redials with backoff when it is not.
relaypair
Package relaypair redeems a pairing key for this machine's relay credentials via one POST; what comes back is what relaycreds stores.
Package relaypair redeems a pairing key for this machine's relay credentials via one POST; what comes back is what relaycreds stores.
relaytest
Package relaytest is an in-memory stand-in for a relay, for testing a connector without a network.
Package relaytest is an in-memory stand-in for a relay, for testing a connector without a network.
services/accessview
Package accessview computes HITL policy verdicts (reachability plus read/write decisions) for a batch of workspace-relative paths, always returning the full reason rather than only the interesting cases.
Package accessview computes HITL policy verdicts (reachability plus read/write decisions) for a batch of workspace-relative paths, always returning the full reason rather than only the interesting cases.
services/agenthost
Package agenthost is the runtime's client/host-role primitive for driving another ACP agent over stdio, the way an editor spawns an agent binary and drives it as a client.
Package agenthost is the runtime's client/host-role primitive for driving another ACP agent over stdio, the way an editor spawns an agent binary and drives it as a client.
services/agentregistryservice
Package agentregistryservice stores declared agent configurations ("external_acp" or "chain") as the single source of truth for what can be spawned.
Package agentregistryservice stores declared agent configurations ("external_acp" or "chain") as the single source of truth for what can be spawned.
services/agentservice
Package agentservice runs prompts against a task chain and persists their session history.
Package agentservice runs prompts against a task chain and persists their session history.
services/agentview
Package agentview computes, for a workspace path, the access the agent would actually have, by running the agent's own gates rather than a parallel reimplementation.
Package agentview computes, for a workspace path, the access the agent would actually have, by running the agent's own gates rather than a parallel reimplementation.
services/chainagents
Package chainagents seeds the declared-agent registry from the runtime's own task chains, so a reviewed chain can be fired as a fleet unit without a second registration step.
Package chainagents seeds the declared-agent registry from the runtime's own task chains, so a reviewed chain can be fired as a fleet unit without a second registration step.
services/chatservice
Package chatservice persists the conversation thread.
Package chatservice persists the conversation thread.
services/clikv
Package clikv reads and writes the CLI's persisted settings (the cli.* KV namespace) and owns the scope of every one of them.
Package clikv reads and writes the CLI's persisted settings (the cli.* KV namespace) and owns the scope of every one of them.
services/eventlog
Package eventlog is the service tier over the durable, append-only domain event log behind the beta event-dispatch tier.
Package eventlog is the service tier over the durable, append-only domain event log behind the beta event-dispatch tier.
services/eventtrigger
Package eventtrigger routes durable events (internal/services/eventlog) to the task chains operators configured to react to them.
Package eventtrigger routes durable events (internal/services/eventlog) to the task chains operators configured to react to them.
services/fleetservice
build.go composes an in-process fleet: agent registry, agentinstance kernel, operator inbox, report router, and the fleet Service, so a host process can dispatch missions as subagents of itself.
build.go composes an in-process fleet: agent registry, agentinstance kernel, operator inbox, report router, and the fleet Service, so a host process can dispatch missions as subagents of itself.
services/gitreview
Package gitreview projects a repository's changes as structured data for a human review surface, diffing between any two of WORKTREE, INDEX, HEAD, or a named revision.
Package gitreview projects a repository's changes as structured data for a human review surface, diffing between any two of WORKTREE, INDEX, HEAD, or a named revision.
services/gointel
Package gointel is the agent's in-process Go code intelligence: a warm, type-checked view of the Go module under the workspace root, exposed as read-only tools (go_describe, go_definition, go_references, go_implementations, go_symbols, go_diagnostics).
Package gointel is the agent's in-process Go code intelligence: a warm, type-checked view of the Go module under the workspace root, exposed as read-only tools (go_describe, go_definition, go_references, go_implementations, go_symbols, go_diagnostics).
services/gojatool
Package gojatool is the agent's embedded ECMAScript sandbox: script tools (operator *.js files) and goja_eval (model-driven bounded compute) on one goja runtime.
Package gojatool is the agent's embedded ECMAScript sandbox: script tools (operator *.js files) and goja_eval (model-driven bounded compute) on one goja runtime.
services/hitlservice
Package hitlservice evaluates approval policies for tool calls, returning allow/deny/approve decisions.
Package hitlservice evaluates approval policies for tool calls, returning allow/deny/approve decisions.
services/jqtool
Package jqtool is the agent's jq engine: one tool, `jq_query`, that runs a jq program (github.com/itchyny/gojq, pure Go) over a JSON or YAML document and returns the emitted values.
Package jqtool is the agent's jq engine: one tool, `jq_query`, that runs a jq program (github.com/itchyny/gojq, pure Go) over a JSON or YAML document and returns the emitted values.
services/localtools
Package localtools provides tools that fire around chain execution: approval gates and host-side helpers.
Package localtools provides tools that fire around chain execution: approval gates and host-side helpers.
services/localtools/mcpoauth
Package mcpoauth implements the MCP OAuth 2.1 Authorization Code + PKCE flow for CLI clients.
Package mcpoauth implements the MCP OAuth 2.1 Authorization Code + PKCE flow for CLI clients.
services/mcpserverservice
Package mcpserverservice stores MCP server configs.
Package mcpserverservice stores MCP server configs.
services/mcpworker
Package mcpworker keeps MCP server connections alive across chain steps.
Package mcpworker keeps MCP server connections alive across chain steps.
services/missionchanges
Package missionchanges answers two oversight questions from a mission's already-journaled work: what did the unit change, and did its attention wander outside its workspace.
Package missionchanges answers two oversight questions from a mission's already-journaled work: what did the unit change, and did its attention wander outside its workspace.
services/missionservice
Package missionservice stores mission records: the durable, agent-reportable half of the fleet manager.
Package missionservice stores mission records: the durable, agent-reportable half of the fleet manager.
services/missiontools
Package missiontools is the per-mission tool grant a dispatched unit holds while running unattended: report progress, ask for attention, maintain a living plan, end with a verdict, and heartbeat.
Package missiontools is the per-mission tool grant a dispatched unit holds while running unattended: report progress, ask for attention, maintain a living plan, end with a verdict, and heartbeat.
services/onboarding
Package onboarding is beam's first-run zero-config path: the mutating sibling to setupcheck.EnrichResultWithOllamaProbe that registers a probed local Ollama backend and sets it as default.
Package onboarding is beam's first-run zero-config path: the mutating sibling to setupcheck.EnrichResultWithOllamaProbe that registers a probed local Ollama backend and sets it as default.
services/operatorinbox
Package operatorinbox is the durable attention surface for mission reports that reached no live supervising session — a sibling store to hitlservice's approval inbox (informational, not answerable), not an overloaded row in it.
Package operatorinbox is the durable attention surface for mission reports that reached no live supervising session — a sibling store to hitlservice's approval inbox (informational, not answerable), not an overloaded row in it.
services/oracletools
Package oracletools is the oracle attention driver's tool grant: exactly one model-facing tool, submit_verdict, bound to exactly one durable ask for exactly one chain execution.
Package oracletools is the oracle attention driver's tool grant: exactly one model-facing tool, submit_verdict, bound to exactly one durable ask for exactly one chain execution.
services/presence
Package presence lets an editor-spawned contenox process (`contenox acp`, `serve` itself) self-register into the shared store so the fleet board can show it.
Package presence lets an editor-spawned contenox process (`contenox acp`, `serve` itself) self-register into the shared store so the fleet board can show it.
services/project
Package project owns a project's portable identity marker — <projectRoot>/.contenox/workspace.id — read and written the same way by serve, the CLI, and the /workspace/roots API.
Package project owns a project's portable identity marker — <projectRoot>/.contenox/workspace.id — read and written the same way by serve, the CLI, and the /workspace/roots API.
services/reportrouter
Package reportrouter delivers missionservice's report, ask, status, and plan-revision events to the session that fired the mission, falling back to the operator inbox when none is live.
Package reportrouter delivers missionservice's report, ask, status, and plan-revision events to the session that fired the mission, falling back to the operator inbox when none is live.
services/searchtool
Package searchtool exposes the workspace retrieval index to an agent as one local toolset, provider "workspace", one tool: workspace_search.
Package searchtool exposes the workspace retrieval index to an agent as one local toolset, provider "workspace", one tool: workspace_search.
services/sessionservice
Package sessionservice stores CLI chat sessions so conversations persist across terminal restarts.
Package sessionservice stores CLI chat sessions so conversations persist across terminal restarts.
services/sessionvitals
Package sessionvitals holds the surface-neutral facts about one live agent session — what is happening right now (Tracker), how full the context window is (ContextUsage), what deserves the operator's attention (Alerter), and what a session is called (Label, Roster).
Package sessionvitals holds the surface-neutral facts about one live agent session — what is happening right now (Tracker), how full the context window is (ContextUsage), what deserves the operator's attention (Alerter), and what a session is called (Label, Roster).
services/setupcheck
Package setupcheck evaluates local runtime readiness (defaults, backends) for the CLI.
Package setupcheck evaluates local runtime readiness (defaults, backends) for the CLI.
services/shellenvservice
Package shellenvservice persists the operator-defined environment variables contenox injects into shells it spawns (local_shell, shell_session, the interactive terminal), layered on top of the environment scrub so they always win.
Package shellenvservice persists the operator-defined environment variables contenox injects into shells it spawns (local_shell, shell_session, the interactive terminal), layered on top of the environment scrub so they always win.
services/shellsession
Package shellsession manages one persistent PTY-backed shell per chat session, rooted at the session's workspace root and outliving individual commands.
Package shellsession manages one persistent PTY-backed shell per chat session, rooted at the session's workspace root and outliving individual commands.
services/terminalservice
Package terminalservice manages local PTY-backed shell sessions.
Package terminalservice manages local PTY-backed shell sessions.
services/toolguidance
Package toolguidance appends short orientation lines to a tool's textual result: a repeat-call marker, a re-read hint, and a periodic scope summary, derived from per-session counters the harness maintains.
Package toolguidance appends short orientation lines to a tool's textual result: a repeat-call marker, a re-read hint, and a periodic scope summary, derived from per-session counters the harness maintains.
services/vfs
Package vfs is the single home for workspace-root containment: resolving a candidate path against a root and rejecting anything that escapes it, symlinks included.
Package vfs is the single home for workspace-root containment: resolving a candidate path against a root and rejecting anything that escapes it, symlinks included.
services/workspacegrants
Package workspacegrants owns the durable, hot-reloadable workspace-root allowlist beyond serve's launch-time roots: a durable config value (source of truth, read via clikv) plus a fire-and-forget bus doorbell (RootsChangedSubject) that tells a running serve to reload.
Package workspacegrants owns the durable, hot-reloadable workspace-root allowlist beyond serve's launch-time roots: a durable config value (source of truth, read via clikv) plus a fire-and-forget bus doorbell (RootsChangedSubject) that tells a running serve to reload.
services/workspaceindex
Package workspaceindex builds and queries a local retrieval index over a workspace: `contenox index` fills it, `contenox search` reads it, and a local tool exposes the same read to the agent.
Package workspaceindex builds and queries a local retrieval index over a workspace: `contenox index` fills it, `contenox search` reads it, and a local tool exposes the same read to the agent.
surfaces/beamtui/app
Package app is beam's composition loop: the app-shell that owns the single select over terminal input, the engine-bridge event stream, and one deterministic ticker, folding each event into component state and committing exactly one frame per iteration.
Package app is beam's composition loop: the app-shell that owns the single select over terminal input, the engine-bridge event stream, and one deterministic ticker, folding each event into component state and committing exactly one frame per iteration.
surfaces/beamtui/comp/approval
Package approval renders beam's in-session HITL card: tool, arguments, policy rule, and diff, in that order — diff last, closest to the y/n line — across pending/resolved/cancelled.
Package approval renders beam's in-session HITL card: tool, arguments, policy rule, and diff, in that order — diff last, closest to the y/n line — across pending/resolved/cancelled.
surfaces/beamtui/comp/brand
Package brand renders beam's identity device: the fresh-session welcome header and the persistent status-bar identity segment, both built around the vertical brand-mint beam-bar `▌` and, once per session, the logo-mark as block art.
Package brand renders beam's identity device: the fresh-session welcome header and the persistent status-bar identity segment, both built around the vertical brand-mint beam-bar `▌` and, once per session, the logo-mark as block art.
surfaces/beamtui/comp/composer
Package composer owns beam's input buffer: a pure state machine over text, agnostic to terminals and key encodings, behind the bottom-fixed composer region.
Package composer owns beam's input buffer: a pure state machine over text, agnostic to terminals and key encodings, behind the bottom-fixed composer region.
surfaces/beamtui/comp/fileaddr
Package fileaddr sources the candidates behind beam's @-mention picker: the files of the session's grant-bounded workspace root (via vfs, the only dependency on it under beamtui), filtered like the agent's own find_files, ranked and capped by comp/picker.
Package fileaddr sources the candidates behind beam's @-mention picker: the files of the session's grant-bounded workspace root (via vfs, the only dependency on it under beamtui), filtered like the agent's own find_files, ranked and capped by comp/picker.
surfaces/beamtui/comp/palette
Package palette owns slash-command discovery for beam's composer: the merged remote+local command set, the case-insensitive `/` prefix filter, and the overlay rows drawn in the live region.
Package palette owns slash-command discovery for beam's composer: the merged remote+local command set, the case-insensitive `/` prefix filter, and the overlay rows drawn in the live region.
surfaces/beamtui/comp/picker
Package picker is beam's generic keyboard list overlay: the filtered, ranked, windowed list every "choose one of these" surface renders through.
Package picker is beam's generic keyboard list overlay: the filtered, ranked, windowed list every "choose one of these" surface renders through.
surfaces/beamtui/comp/statusbar
Package statusbar renders beam's persistent one-line status bar: identity, session, activity, context budget, operator inbox, missions and connection health.
Package statusbar renders beam's persistent one-line status bar: identity, session, activity, context budget, operator inbox, missions and connection health.
surfaces/beamtui/comp/transcript
Package transcript renders one beam session's ordered record — user turns, streamed assistant prose, thought traces, tool-call cards, mission reports and lifecycle cards, shell output and turn notices — as frame data.
Package transcript renders one beam session's ordered record — user turns, streamed assistant prose, thought traces, tool-call cards, mission reports and lifecycle cards, shell output and turn notices — as frame data.
surfaces/beamtui/enginebridge
Package enginebridge is the seam between a beam surface and the contenox runtime: an in-process ACP loopback (acpsvc.Transport wired to a libacp.ClientSideConnection) turned into a typed Event vocabulary a renderer can consume without knowing ACP exists.
Package enginebridge is the seam between a beam surface and the contenox runtime: an in-process ACP loopback (acpsvc.Transport wired to a libacp.ClientSideConnection) turned into a typed Event vocabulary a renderer can consume without knowing ACP exists.
surfaces/beamtui/frame
Package frame is beam's rendering schema: the pure-data contract between components (pure functions of (state, width) -> []Line) and the terminal engine that draws it.
Package frame is beam's rendering schema: the pure-data contract between components (pure functions of (state, width) -> []Line) and the terminal engine that draws it.
surfaces/beamtui/input
Package input defines beam's decoded terminal input events and the pure parser that produces them from raw bytes.
Package input defines beam's decoded terminal input events and the pure parser that produces them from raw bytes.
surfaces/beamtui/keymap
Package keymap is beam's sole key arbiter.
Package keymap is beam's sole key arbiter.
surfaces/beamtui/sanitize
Package sanitize is beam's one gate between untrusted text and a [frame.Span], which draws its text as literal cells with no interpretation beyond the style table.
Package sanitize is beam's one gate between untrusted text and a [frame.Span], which draws its text as literal cells with no interpretation beyond the style table.
surfaces/beamtui/style
Package style is beam's only StyleID→terminal-attributes table: the tier ladder (truecolor → 256 → 16 → mono), the capability snapshot that selects a tier, the brand ladder, and the glyph set that carries meaning when color is unavailable.
Package style is beam's only StyleID→terminal-attributes table: the tier ladder (truecolor → 256 → 16 → mono), the capability snapshot that selects a tier, the brand ladder, and the glyph set that carries meaning when color is unavailable.
surfaces/beamtui/term
Package term owns the terminal: the only beam package allowed to read terminal state or write to the tty.
Package term owns the terminal: the only beam package allowed to read terminal state or write to the tty.
surfaces/beamtui/testkit
Package testkit is beam's shared test infrastructure: the reference encoding that turns frame data into reviewable golden files, the golden compare/update helper, the fixture corpus, FakeEngineBridge, and the liveness frame-diff harness.
Package testkit is beam's shared test infrastructure: the reference encoding that turns frame data into reviewable golden files, the golden compare/update helper, the fixture corpus, FakeEngineBridge, and the liveness frame-diff harness.
surfaces/beamtui/textwidth
Package textwidth centralizes rune-safe terminal cell-width math for beam: every width measurement, truncation, pad, and wrap goes through here instead of ad hoc len() arithmetic.
Package textwidth centralizes rune-safe terminal cell-width math for beam: every width measurement, truncation, pad, and wrap goes through here instead of ad hoc len() arithmetic.
surfaces/contenoxcli
acp_toolset.go composes the local tool providers an ACP session (contenox acp/acpx — Zed, JetBrains, OpenClaw) gets.
acp_toolset.go composes the local tool providers an ACP session (contenox acp/acpx — Zed, JetBrains, OpenClaw) gets.
surfaces/fleetboot
Package fleetboot builds the in-process mission fleet a surface embeds so `/mission` is dispatched as a subagent of the host process, with reports delivered back to the session that fired them.
Package fleetboot builds the in-process mission fleet a surface embeds so `/mission` is dispatched as a subagent of the host process, with reports delivered back to the session that fired them.
Package libacp implements the Agent Client Protocol (ACP) v1, the JSON-RPC-over-NDJSON protocol editors and agents use to talk to each other.
Package libacp implements the Agent Client Protocol (ACP) v1, the JSON-RPC-over-NDJSON protocol editors and agents use to talk to each other.
acpexec
Package acpexec spawns a subprocess and wires its stdin/stdout together as a single io.ReadWriteCloser — the transport shape libacp.NewAgentSideConnection and libacp.NewClientSideConnection expect — so an ACP peer (an editor, or a test driving a reference binary) can be reached over stdio without hand-rolled pipe/shutdown bookkeeping.
Package acpexec spawns a subprocess and wires its stdin/stdout together as a single io.ReadWriteCloser — the transport shape libacp.NewAgentSideConnection and libacp.NewClientSideConnection expect — so an ACP peer (an editor, or a test driving a reference binary) can be reached over stdio without hand-rolled pipe/shutdown bookkeeping.
cmd/acp-stub-agent command
Command acp-stub-agent is a hermetic ACP Agent used to validate libacp's agent-side wire dispatch against ACP conformance clients, without any LLM backend.
Command acp-stub-agent is a hermetic ACP Agent used to validate libacp's agent-side wire dispatch against ACP conformance clients, without any LLM backend.
Package libbus is a high-level publish-subscribe abstraction over a message broker, offering fire-and-forget publish, streaming subscriptions, and request-reply (Serve/Request) on top of pluggable backends (NATS, SQLite, in-memory).
Package libbus is a high-level publish-subscribe abstraction over a message broker, offering fire-and-forget publish, streaming subscriptions, and request-reply (Serve/Request) on top of pluggable backends (NATS, SQLite, in-memory).
Package libcipher provides a collection of cryptographic utilities for encryption, decryption, integrity verification, and secure key generation.
Package libcipher provides a collection of cryptographic utilities for encryption, decryption, integrity verification, and secure key generation.
Package libdbexec provides driver-agnostic interfaces (DBManager, Exec, QueryRower) for SQL access, implemented for PostgreSQL (lib/pq) and SQLite.
Package libdbexec provides driver-agnostic interfaces (DBManager, Exec, QueryRower) for SQL access, implemented for PostgreSQL (lib/pq) and SQLite.
Package libevents holds the consumer-side state of an event log: durable cursors, firing claims with recorded outcomes, listener subscriptions, and staged events held until a due time.
Package libevents holds the consumer-side state of an event log: durable cursors, firing claims with recorded outcomes, listener subscriptions, and staged events held until a due time.
Package liblease implements a cooperative, time-bounded file lease: a single-holder lock backed by an ordinary file, not an OS primitive.
Package liblease implements a cooperative, time-bounded file lease: a single-holder lock backed by an ordinary file, not an OS primitive.
Package librelay defines the wire contract between a contenox runtime and a relay: the Frame envelope, its NDJSON codec (Reader, Writer), and the relay-level control messages.
Package librelay defines the wire contract between a contenox runtime and a relay: the Frame envelope, its NDJSON codec (Reader, Writer), and the relay-level control messages.
Package routine provides utilities for managing recurring tasks (routines) with circuit breaker protection.
Package routine provides utilities for managing recurring tasks (routines) with circuit breaker protection.
libs
libauth module
libdb module
libollama module
tokenizer module
tools
version command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL