{"slug": "show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents", "title": "Show HN: AstraBox – an open-source alternative to Claude Managed Agents", "summary": "AstraBox, an Apache-2.0 open-source, self-hosted alternative to Claude Managed Agents, was released, letting developers run Claude Code, Codex, Hermes, DeepSeek Harness and Pi as cloud agents on their own infrastructure with any model. The deployment bundles LiteLLM as a default model gateway, Casdoor for OIDC team login, OpenSandbox for isolated sandboxes, and Satori adapters for schedules, signed webhooks and messaging triggers, with sessions lasting about 2 minutes and credentials injected at the sandbox egress boundary so the agent only sees a placeholder.", "body_md": "**The open-source, self-hosted alternative to Claude Managed Agents.**\n\n  No signup. Ask an Agent to write and run code with a free model.\n\n  Offline sandbox · Sessions last about 2 minutes.\n\nOpen source · Self-hosted · Apache-2.0\n\n**English** · [简体中文](https://github.com/Colton-z/AstraBox/blob/main/README.zh-CN.md)\n\nTurn the Agent programs you already use into cloud Agents that stay available 24/7. AstraBox runs Claude Code, Codex, Hermes, DeepSeek Harness and Pi on your own infrastructure, with any model. Conversations start and resume in seconds; Sessions, sandboxes, credentials and history stay under your control.\n\nYou do not have to turn an Agent program into a service yourself, manage sandbox lifecycle, or maintain long-lived connections. Deploy AstraBox, create an Agent in the web console, and start a Session. Complex tasks run in a cloud sandbox while results stream back in real time.\n\nAstraBox runs the Agent programs you already use as cloud Agents that can be reached remotely, continue long-running work, and connect to your applications, automations, and messaging platforms. The web console, API, Session records, authentication, and sandboxes all run on infrastructure you control.\n\n**One platform for team Agents and personal Assistants.** An\n[Agent](https://github.com/Colton-z/AstraBox/blob/main/docs/authoring-agents.md) is a reusable cloud Agent for teams and\nautomation, started from the web console, the API, schedules, webhooks,\nmessaging platforms or an MCP client. An [Assistant](https://github.com/Colton-z/AstraBox/blob/main/docs/assistants.md) is one\nperson's long-lived cloud workspace: all of its conversations share one\nworkspace and the Agent program's state.\n\n| Concept | Description | Analogy | \n|---|---|---|\n| **Agent** | A cloud Agent powered by an installed Agent program | \"Cloud teammate\" | \n| **Environment** | The Agent program, sandbox, model connection, network access, and lifecycle used for a Session | \"Desk and toolbox\" | \n| **Session** | One stateful Agent execution, including its messages, Events, and current state | \"A specific piece of work\" | \n| **Event** | The real-time output and state changes produced by a Session | \"Live progress feed\" | \n\nThrough these resources, developers can run interactive or long-running tasks, connect remote or local MCP servers, Plugins, Skills, and repositories, trigger Agents from schedules, webhooks, APIs, and messaging platforms, and protect access with authentication, authorization, isolated sandboxes, and managed credentials.\n\n[Explore AstraBox capabilities →](https://github.com/Colton-z/AstraBox/blob/main/docs/capabilities.md)\n\nOne deployment brings up the pieces a team usually assembles by hand:\n\n- **Model gateway** —[LiteLLM](https://github.com/BerriAI/litellm) is bundled\nand on by default: one route name per model, upstream keys held on the\nserver, budgets and usage logs, and any Anthropic, OpenAI-compatible or local\nprovider behind it. See[Connect a model](https://github.com/Colton-z/AstraBox/blob/main/docs/models.md) .\n- **Team login** —[Casdoor](https://github.com/casdoor/casdoor) is\npre-integrated as the identity provider: OIDC, organizations and roles, and\nsign-in through the identity providers an administrator adds in Casdoor, such\nas Google, Microsoft Entra ID, Okta, GitHub, SAML or LDAP. The installer turns\nit on with`ASTRABOX_INSTALL_TEAM_LOGIN=casdoor` , and a clone\nwith one Compose overlay; see[Team login](https://github.com/Colton-z/AstraBox/blob/main/docs/team-login.md) .\n- **Isolated sandboxes** —[OpenSandbox](https://github.com/opensandbox-group/OpenSandbox) on one Docker host or a Kubernetes cluster, with warm capacity so\nconversations start in seconds.\n- **Credentials outside the sandbox** — Vault credentials are injected at the\nsandbox's egress boundary; the Agent only ever sees a placeholder.\n- **Channels and triggers** — schedules, signed webhooks and messaging\nplatforms through official[Satori](https://github.com/satorijs/satori) adapters.\n\nThe `astrabox` CLI configures and uses a local or remote deployment without the\nweb console. Its results can be printed as JSON, so a coding agent such as\nClaude Code or Codex can run the same commands for you.\n\n- **Configuration as code** —`astrabox init --from-deployment` exports a\ndeployment's Environments and Agents to`astrabox.yaml` ;`astrabox diff` previews an edit and`astrabox apply` creates or updates resources, never\ndeleting any.\n- **Tasks from the command line** —`astrabox run <agent> \"<task>\"` starts a\nSession, sends the task and streams the reply;`--session` continues an\nexisting Session.\n- **Output a program can read** — with`--output json` a command prints one\nJSON object whether it succeeds or fails, and each kind of failure has its\nown exit code.\n- **MCP tools** —`astrabox mcp serve` offers schema, get, export, diff, apply,\nstatus and run as MCP tools over stdio.\n- **Local or remote** —`astrabox up` ,`down` and`logs` run the local Compose\ndeployment from a source checkout; the other commands reach any deployment\nwith`--endpoint` and a bearer token or OAuth client credentials.\n\nInstall the CLI from a source checkout with `make install`. Deployments\n(schedule, webhook and messaging triggers) and answers to an Agent's questions\nare managed in the web console or the HTTP API. See the\n[CLI overview](https://github.com/Colton-z/AstraBox/blob/main/docs/cli/overview.md).\n\n| Agent program | Sandbox image | Used for | \n|---|---|---|\n| Claude Code | `ghcr.io/colton-z/astrabox-sandbox-claude-code` | Agent | \n| Codex | `ghcr.io/colton-z/astrabox-sandbox-codex` | Agent | \n| DeepSeek Harness | `ghcr.io/colton-z/astrabox-sandbox-deepseek-harness` | Agent | \n| pi | `ghcr.io/colton-z/astrabox-sandbox-pi` | Agent | \n| Hermes Agent | `ghcr.io/colton-z/astrabox-sandbox-hermes` | Assistant | \n\nOther Agent programs can be added with a compatible sandbox image. See\n[Add an Agent program](https://github.com/Colton-z/AstraBox/blob/main/docs/writing-an-engine-adapter.md).\n\nEach replaceable part of AstraBox is a Python interface with a plugin registration point. An installed package registers its implementation under the matching entry-point group, and AstraBox selects it by name; an unknown name fails with an error instead of falling back to a default.\n\n| Extension point | Entry-point group | Built in | \n|---|---|---|\n| Agent program | `astrabox.providers.engine` | Every included Agent program | \n| Sandbox backend | `astrabox.providers.sandbox` | OpenSandbox on Docker or Kubernetes | \n| Model service | `astrabox.providers.model` | LiteLLM gateway | \n| Messaging platform | `astrabox.providers.channel` | Messaging platform gateway, generic JSON webhook | \n| Identity provider | `astrabox.web.identity` | Local mode, OIDC, verified JWT, trusted identity headers | \n| Secret Store | `astrabox.providers.secrets` | Local encryption, AWS KMS | \n| Data store | `astrabox.providers.repository` | PostgreSQL, MongoDB, SQLite | \n| Workspace storage | `astrabox.providers.storage` | Mounted volume, Amazon EFS | \n| Remote MCP server source | `astrabox.providers.extensions` | Administrator records in AstraBox, LiteLLM MCP gateway | \n\n- **Interface version** — a plugin under`astrabox.providers.*` can set`seams_api_version` to the interface version it was built against; AstraBox\nrefuses to load it when that differs from its own.\n- **Conformance suites** —`astrabox.testing` ships reusable test suites for\nsandbox backends, workspace storage, messaging platforms, Agent programs and\ndata stores; bind one in the plugin's own tests.\n- **Application extensions** — entry points for API routes, middleware,\nlifespan hooks and service implementations extend the application itself.\n\nSee [Add an Agent program](https://github.com/Colton-z/AstraBox/blob/main/docs/writing-an-engine-adapter.md),\n[Add a messaging platform](https://github.com/Colton-z/AstraBox/blob/main/docs/writing-a-channel-provider.md),\n[Use AstraBox from a Python application](https://github.com/Colton-z/AstraBox/blob/main/docs/embedding.md) and\n[Extensions](https://github.com/Colton-z/AstraBox/blob/main/docs/architecture.md#plugin-interfaces).\n\n1. **Deploy AstraBox** — run the service and OpenSandbox on one Docker host,\nKubernetes, or infrastructure you already operate.\n2. **Configure an Environment** — choose the Agent program, sandbox image, model\nconnection, network access, and lifecycle.\n3. **Create an Agent** — select the Environment and model in the web console,\nthen add a system prompt, MCP servers, Plugins, Skills, or a repository only\nwhen the Agent needs them.\n4. **Start a Session** — open the Agent and start a Session.\n5. **Send messages and receive Events** — follow live output, answer questions\nor approvals, and return later without keeping the original browser open.\n\n- A Linux host (or WSL 2) running Docker Engine 26.0 or later with the Compose plugin 2.17.0 or later, and a user that can use the Docker socket\n- An API key for a model service: Anthropic, DeepSeek, or another Anthropic- or OpenAI-compatible service\n\nInstall the latest release with one command:\n\n```\ncurl -fsSL https://raw.githubusercontent.com/Colton-z/AstraBox/main/scripts/install.sh | bash\n```\n\nThe installer asks which model service your Agents use, installs the deployment\ninto `~/astrabox`, pulls the published images, starts them, and prints the\nconsole address once the console answers. Open [http://127.0.0.1:8088](http://127.0.0.1:8088). Select\nan Environment, create an Agent, and start your first Session from the console.\n\nThe local deployment listens on loopback and requires no login until you turn\non team login, which the installer does with `ASTRABOX_INSTALL_TEAM_LOGIN=casdoor`.\nBefore exposing it to another network, put it behind an HTTPS proxy as described\nin [Team login](https://www.astrabox.ai/docs/team-login#put-the-login-flow-behind-a-proxy).\n\nRun the installer again to upgrade: it installs the latest release over the current one and keeps your Sessions, credentials and settings.\n\nBuilding the images from a checkout takes longer and is the path for changing AstraBox itself:\n\n```\ngit clone https://github.com/Colton-z/AstraBox.git\ncd AstraBox\n\nmake build-agent-image\n\nexport ANTHROPIC_API_KEY=\"your-anthropic-api-key\"\nexport ANTHROPIC_MODEL=\"your-model-name\"\nscripts/compose.sh up --build -d\n```\n\nFor the complete setup and API alternative, see the\n[Quickstart](https://www.astrabox.ai/docs/quickstart). For the installer settings,\nKubernetes, or an existing OpenSandbox service, see\n[Deploy AstraBox](https://www.astrabox.ai/docs/deploy).\n\nPrewarming prepares the Agent runtime before a Session claims it. New Agents\nhave it on in the bundled deployments, and each one holds an idle prepared\nsandbox; see [capacity planning](https://github.com/Colton-z/AstraBox/blob/main/docs/deploy.md#plan-capacity-for-prepared-sandboxes).\nNative conversation state is stored in the platform database; a persistent workspace\nvolume is optional and preserves task files separately. For multiple API\nreplicas or sandbox nodes, see [distributed deployment](https://github.com/Colton-z/AstraBox/blob/main/docs/deploy-distributed.md)\nand [workspace storage](https://github.com/Colton-z/AstraBox/blob/main/docs/deploy.md#where-conversation-workspaces-live).\n\n- **Long-running asynchronous tasks** — let work continue after the developer's\ncomputer or browser disconnects.\n- **API integration** — use an Agent from an application without building and\noperating a separate Agent runtime.\n- **Batch processing** — run multiple Sessions for independent requests.\n- **Scheduled and event-driven work** — start Agents from a schedule, webhook,\nexternal system, or messaging platform.\n\nLocal Agent programs remain the best fit for interactive development on one computer. AstraBox makes the same kind of Agent available remotely and to other systems; the two approaches complement each other.\n\n```\nmake install\nmake build-agent-image\nmake build-assistant-image\nmake dev\n```\n\nOpen [http://127.0.0.1:5173](http://127.0.0.1:5173). See [CONTRIBUTING.md](https://github.com/Colton-z/AstraBox/blob/main/CONTRIBUTING.md) for the\nmaintained workflow.\n\nIssues and pull requests are welcome. Start with\n[CONTRIBUTING.md](https://github.com/Colton-z/AstraBox/blob/main/CONTRIBUTING.md).\n\nAstraBox stands on the shoulders of these open-source projects:\n[OpenSandbox](https://github.com/opensandbox-group/OpenSandbox),\n[LiteLLM](https://github.com/BerriAI/litellm),\n[Casdoor](https://github.com/casdoor/casdoor),\n[Satori](https://github.com/satorijs/satori),\n[DBOS Transact](https://github.com/dbos-inc/dbos-transact-py),\n[mergerfs](https://github.com/trapexit/mergerfs),\n[AIO Sandbox](https://github.com/agent-infra/sandbox),\n[shadcn/ui](https://github.com/shadcn-ui/ui),\n[Vercel AI SDK and AI Elements](https://github.com/vercel/ai) and\n[Docusaurus](https://github.com/facebook/docusaurus) — and it runs the Agent\nprograms [Codex](https://github.com/openai/codex),\n[Hermes Agent](https://github.com/NousResearch/hermes-agent),\n[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness),\n[Pi](https://github.com/earendil-works/pi) and\n[Claude Code](https://github.com/anthropics/claude-code). [NOTICE](https://github.com/Colton-z/AstraBox/blob/main/NOTICE) lists\nevery attribution and license.\n\nApache License 2.0. See [LICENSE](https://github.com/Colton-z/AstraBox/blob/main/LICENSE).\n\nClaude and Claude Code are trademarks of Anthropic; OpenAI and Codex are\ntrademarks of OpenAI. AstraBox is an independent project, not affiliated with\nor endorsed by them. Claude Code is proprietary software used under Anthropic's\nterms; see [NOTICE](https://github.com/Colton-z/AstraBox/blob/main/NOTICE).", "url": "https://wpnews.pro/news/show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents", "canonical_source": "https://github.com/Colton-z/AstraBox", "published_at": "2026-09-27 20:31:39+00:00", "updated_at": "2026-09-27 21:01:27.792078+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-infrastructure"], "entities": ["AstraBox", "Claude Managed Agents", "Claude Code", "Codex", "LiteLLM", "Casdoor", "OpenSandbox", "Satori"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents", "markdown": "https://wpnews.pro/news/show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents.md", "text": "https://wpnews.pro/news/show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-astrabox-an-open-source-alternative-to-claude-managed-agents.jsonld"}}