mrkeyoor.com_
Sat 26 Sept 18:47 UTC
Automationevaluationupdated 26 Aug 2026

centaur review

Centaur is a self-hosted platform that lets a team talk to coding agents from Slack or an API and gives each conversation a Kubernetes sandbox. It stores the conversation and execution state, brokers approved credentials, runs durable workflows, and can host Claude Code, Codex, Amp, or another command-line agent behind one shared control plane.

+8stars / 7d
Verdict

Our Centaur checkout installed 364 pnpm packages in 20 seconds, but it offered no root build or test target to prove that the multi-service platform worked. Centaur is worth evaluating for a platform team that already runs Kubernetes and needs shared, credential-aware coding agents across chat and APIs. A small team should choose a narrower coding agent or sandbox service unless it truly needs durable workflows, organization-wide policy, and multiple agent harnesses.

We ran it

Lab card: what happened when we ran centaurScreenshot of centaur (centaur.run)
Install✓ · 20s364 packages · 348 MB
Buildn/ano build script
Testsn/ano test script
Repo1684 files~287,961 lines of source · 19.5 MB · 9 CI workflows

Answers from our run

Does centaur build from source?

Dependencies installed in 20 seconds (364 packages), and the project has no separate build step. We cloned commit 46bebdf into a clean Debian container with 3 CPUs and no project-specific setup.

Does centaur have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use centaur?

A solo developer wanting a quick local coding assistant: the default bootstrap requires Kubernetes, 1Password, Slack credentials, and a model credential before one agent turn.

What are the alternatives to centaur?

OpenHands, E2B Infrastructure, Daytona. Our Centaur checkout installed 364 pnpm packages in 20 seconds, but it offered no root build or test target to prove that the multi-service platform worked.

Setup1/520-second pnpm install hides a Kubernetes and secrets deployment
Docs4/5Detailed quickstart, architecture, security, and production guides
Community4/51,187 stars with frequent releases and active technical reports
Maturity2/5v0.1.126 is moving fast, with no root build or test target

Who it’s for

Platform teams standardizing coding-agent access across Slack, APIs, and shared repositories.
Organizations already comfortable operating Kubernetes, Postgres, Helm, identity systems, and secret stores.
Security teams that want agent commands isolated in per-thread pods with controlled credential injection.
Developers building resumable agent workflows that sleep, wait for events, or start child agents.

Who it’s NOT for

A solo developer wanting a quick local coding assistant: the default bootstrap requires Kubernetes, 1Password, Slack credentials, and a model credential before one agent turn.
Teams that need a verified root build and test command: our pnpm install succeeded, but the root package exposes neither target, so both were skipped.
Operators unwilling to design egress policy: the security guide says the default iron-proxy domain allowlist is open.
Environments expecting the sandbox to defend against cluster administrators or a compromised host: the documented threat model excludes that attacker.
Teams needing a settled 1.0 platform: the latest release is centaur-0.1.126, and current reports cover misleading out-of-memory errors, provider-specific summaries, and follow-up messages returning HTTP 500.

Setup reality

Our sandbox installed 364 pnpm packages in 20 seconds and used 348 MB. The root package had no build script or target, so build was skipped. It also had no test script or target, so tests were skipped. Those results verify dependency resolution only, not a working Centaur deployment.

The documented local stack needs Docker, Kubernetes, Helm, kubectl, just, and jq. Bootstrap requires 1Password service credentials, Slack bot and signing secrets, a Centaur service key, and a model credential such as an OpenAI API key in the configured secret source.

just up builds several images, creates Kubernetes secrets, and deploys the Helm chart with Postgres-backed state and per-thread sandboxes. Slack needs a public HTTPS webhook. Production also needs egress rules, principal and role grants, resource limits, backup policy, and monitoring for the control plane.

Centaur puts each chat thread in a Kubernetes sandbox

Centaur turns a Slack mention or API message into a durable agent session. The control plane stores messages and events in Postgres, assigns a sandbox, starts the selected command-line harness, and streams progress back to the caller. Claude Code, Codex, Amp, and deployment-specific harnesses can sit behind the same interface. Tools and workflows are installed centrally rather than copied into every developer's laptop setup.

Isolation is the defining choice. Each conversation receives a short-lived Kubernetes pod with a shell, workspace, Git, Python, Node.js, Bun, and common developer tools. The repository at commit 46bebdf contained 1,684 files and roughly 287,961 lines of source in 19.5 MB. That code spans a Rust API, chat services, sandbox images, Python tools, workflow plugins, a console, and Helm deployment material. This is platform infrastructure, not a Slack bot with a subprocess attached.

The first agent turn needs Kubernetes and 5 bootstrap secrets

The local guide asks for Docker, a Kubernetes cluster, Helm, kubectl, just, and jq. A lightweight k3s host, kind cluster, minikube, or Docker Desktop Kubernetes can work. The default bootstrap also expects OP_SERVICE_ACCOUNT_TOKEN, OP_VAULT, SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET, and SLACKBOT_API_KEY. The default Codex harness needs an OpenAI API credential stored behind iron-proxy before it can finish a turn.

just up creates secrets, builds several local images, and deploys the chart. A smoke command then exercises the durable API without Slack and expects a completed execution containing PONG. Slack comes afterward and needs a public HTTPS webhook plus event scopes. That sequence is documented well, yet it is a real cluster deployment. If your team does not already understand pod scheduling, image builds, ingress, service credentials, and Postgres operations, Centaur creates a new operational specialty.

What happened when we ran it

Our fresh Node 22 sandbox installed 364 pnpm packages in 20 seconds and used 348 MB on disk. Dependency installation succeeded cleanly for the root workspace. The repository is a monorepo, with pnpm workspaces for JavaScript packages and several ingress bots. Other parts use Rust, Python, and Ruby, so a successful root pnpm install does not cover every language, service, image, migration, or Helm resource needed by the deployed platform.

The root package had no build script or target, so our harness skipped build. It also had no test script or target, so tests were skipped. This is not a passing build or a passing suite. The README tells contributors to build an affected service with just build-one, deploy it, and run language-specific checks such as Ruff and pytest for Python. That service-by-service approach may fit the repository, but it leaves no single root command for an evaluator to verify the platform.

The lab result therefore proves only one narrow fact: 364 pnpm dependencies resolved in 20 seconds at commit 46bebdf. It does not prove the Kubernetes stack boots, a sandbox starts, Slack delivery works, or credential substitution behaves correctly. Teams evaluating Centaur should run the documented smoke test and one real chat turn against their own cluster, then exercise the exact harness and tools they plan to grant.

Credentials stay outside sandboxes, while egress starts open

Centaur's security design addresses a difficult agent problem. Sandboxes receive placeholder strings rather than raw secrets. A per-sandbox iron-proxy substitutes a real credential only for configured hosts and approved header, query, or path positions. Kubernetes NetworkPolicy blocks a sandbox from reaching other pods or the internet directly; outbound calls go through its proxy. Messages, executions, tool calls, delivery state, and proxy activity are retained for investigation.

The defaults still require work. The security guide says iron-proxy's domain allowlist initially accepts *, so operators must replace it with the hosts their tools need. New principals also inherit an infrastructure role by default, and administrators must configure roles, grants, and sandbox capabilities. The documented model does not defend against a fully privileged attacker on the host or cluster control plane. It limits agent-originated damage inside the sandbox boundary; it does not turn Kubernetes administration into a low-trust activity.

Durable workflows justify the platform cost for some teams

A workflow can save a step, wait, resume after a service restart, run another agent, or react to an external event. That is useful for recurring checks, CI investigations, customer-context summaries, and operational jobs that cannot finish inside one HTTP request. Centaur also exposes session APIs for creating or reusing a thread, storing messages, starting execution, and replaying events. The design makes chat one client of a durable runtime rather than the sole place state exists.

Current issue activity shows why durable agent infrastructure is hard. Issue 1454 says a pod killed at a 4 GiB memory limit could be reported as a generic sandbox status instead of OOMKilled with exit 137. Issue 1489 describes a Console follow-up that reaches the active execution but then shows HTTP 500 when a second execution insert conflicts. Issue 1488 says activity summaries still require an OpenAI-style provider even when the session uses another configured model source.

Release 0.1.126 is active and still pre-1.0

GitHub recorded a push on August 26, 2026, hours after release centaur-0.1.126. The repository had 1,187 stars and 67 open issues and pull requests when fetched. The license file offers Apache 2.0 or MIT, although GitHub's repository metadata did not identify it automatically. Frequent releases and detailed technical reports show an active project. They do not make a 0.1 series a settled operational contract.

Centaur is compelling when many users need the same coding agents, tool permissions, transcripts, and resumable workflows. The price is a cluster, several services, secret policy, and no one-command root verification. Our 20-second install is the smallest part of that decision. Run it when centralized control solves an existing organizational problem. For one developer or one agent, OpenHands or a dedicated sandbox layer will usually reach useful work sooner.

Alternatives

ProjectWhat it isPick it when
OpenHands gh↗An open coding-agent platform with a web interface and sandboxed execution.pick this instead when the main job is interactive software development and you want a more direct coding-agent product.
E2B Infrastructure gh↗Self-hostable infrastructure for isolated cloud sandboxes used by AI agents.pick this instead when secure sandbox lifecycle is the problem and you want to build the agent control plane yourself.
Daytona gh↗Infrastructure for creating and managing development sandboxes for agents and developers.pick this instead when workspace provisioning matters more than Slack conversations and durable agent workflows.

What people are saying

  1. [github-trending] paradigmxyz/centaur

Sources

  1. Centaur repository
  2. Centaur quickstart
  3. Centaur security model
  4. Centaur 0.1.126 release
  5. OOMKilled diagnostic report
  6. Console follow-up HTTP 500 report
  7. Activity summary provider report

More automation reviews

runner-images · agent-fleet-manager · kargo · Rose · alchemy · laya · the whole board →