{"id":45638649,"url":"https://github.com/astro-anywhere/astro-agent","last_synced_at":"2026-04-26T08:10:36.712Z","repository":{"id":340236163,"uuid":"1164675565","full_name":"astro-anywhere/astro-agent","owner":"astro-anywhere","description":"Mission control for the AI age.","archived":false,"fork":false,"pushed_at":"2026-04-17T00:03:26.000Z","size":1703,"stargazers_count":35,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2026-04-17T00:39:38.071Z","etag":null,"topics":["agentic-workflow","claude-code","codex"],"latest_commit_sha":null,"homepage":"https://astroanywhere.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astro-anywhere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T11:04:08.000Z","updated_at":"2026-04-16T22:32:17.000Z","dependencies_parsed_at":"2026-03-01T17:00:53.952Z","dependency_job_id":null,"html_url":"https://github.com/astro-anywhere/astro-agent","commit_stats":null,"previous_names":["astro-anywhere/astro-agent"],"tags_count":92,"template":false,"template_full_name":null,"purl":"pkg:github/astro-anywhere/astro-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro-anywhere%2Fastro-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro-anywhere%2Fastro-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro-anywhere%2Fastro-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro-anywhere%2Fastro-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astro-anywhere","download_url":"https://codeload.github.com/astro-anywhere/astro-agent/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro-anywhere%2Fastro-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32204712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T00:06:41.111Z","status":"ssl_error","status_checked_at":"2026-04-24T00:06:35.224Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-workflow","claude-code","codex"],"created_at":"2026-02-24T02:00:33.182Z","updated_at":"2026-04-24T01:07:26.668Z","avatar_url":"https://github.com/astro-anywhere.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eAstro Agent Runner\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eConnect your machines. Let AI do the work.\u003c/strong\u003e\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@astroanywhere/agent\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@astroanywhere/agent?style=flat-square\u0026color=0a0a1a\u0026labelColor=0a0a1a\u0026logo=npm\u0026logoColor=white\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@astroanywhere/agent\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@astroanywhere/agent?style=flat-square\u0026color=0a0a1a\u0026labelColor=0a0a1a\u0026logo=npm\u0026logoColor=white\" alt=\"npm downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%3E%3D18-0a0a1a?style=flat-square\u0026labelColor=0a0a1a\u0026logo=node.js\u0026logoColor=white\" alt=\"node version\"\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-BSL--1.1-0a0a1a?style=flat-square\u0026labelColor=0a0a1a\" alt=\"license\"\u003e\u003c/a\u003e\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://astroanywhere.com/landing/\"\u003eWebsite\u003c/a\u003e\n  \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"#quick-start\"\u003eGet Started\u003c/a\u003e\n  \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"https://github.com/astro-anywhere/astro-examples\"\u003eExamples\u003c/a\u003e\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n\u003c/p\u003e\n\n---\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003ch2\u003e📰 News\u003c/h2\u003e\u003c/summary\u003e\n\n| Date | Update |\n|:-----|:-------|\n| **2026-03-19** | **🤖 Pi Coding Agent support** \u0026mdash; Astro now natively supports [Pi](https://github.com/badlogic/pi-mono), the coding agent powering [OpenClaw](https://github.com/openclaw-ai/openclaw). Auto-detected at launch alongside Claude Code, Codex, and OpenCode. Full streaming, tool result rendering, session preservation, and multi-turn resume. |\n\n\u003c/details\u003e\n\n---\n\n## What is Astro?\n\n[**Astro**](https://astroanywhere.com/landing/) is an orchestrator for AI coding agents. It takes a complex goal, decomposes it into a dependency graph of tasks, and executes them **in parallel** across your machines \u0026mdash; your laptop, GPU servers, HPC clusters, cloud VMs.\n\nMission control lives in the browser. Your machines do the work. The **Agent Runner** is the piece that runs on each machine \u0026mdash; it receives tasks, runs AI agents, and streams results back.\n\n\u003e **Self-hosting** is on the roadmap. Currently Astro runs as a hosted service at [astroanywhere.com](https://astroanywhere.com).\n\n---\n\n## Quick Start\n\n### Step 1 \u0026mdash; Register\n\nCreate an account at [astroanywhere.com](https://astroanywhere.com).\n\n### Step 2 \u0026mdash; Install\n\nInstall at least one AI coding agent:\n\n```bash\nnpm i -g @anthropic-ai/claude-code   # Claude Code\nnpm i -g @openai/codex                # Codex\nnpm i -g openclaw                     # OpenClaw\nbun i -g opencode                     # OpenCode\n```\n\nOptionally install [GitHub CLI](https://cli.github.com/) (`gh`) for automatic PR creation \u0026mdash; recommended but not required.\n\nThen launch the agent runner:\n\n```bash\nnpx @astroanywhere/agent@latest launch\n```\n\nOne command. It detects your AI agents, discovers your machine hardware, finds your SSH hosts, authenticates you, and starts listening for tasks. No global install \u0026mdash; `npx` fetches the latest version.\n\n### Step 3 \u0026mdash; Start Building\n\nOpen the [Astro Dashboard](https://astroanywhere.com), create a project, and describe what you want to build. Try one of these to get started:\n\n- **\"Add dark mode support to my React app\"** \u0026mdash; a single focused task\n- **\"Build a REST API with auth, CRUD endpoints, and tests\"** \u0026mdash; Astro decomposes this into parallel tasks\n- **\"Refactor the data layer to use a repository pattern\"** \u0026mdash; multi-step refactoring across files\n\nOr jump straight in and describe your own goal. Astro will generate a plan, show you the dependency graph, and execute across your machines.\n\n### What You'll See\n\n```\n$ npx @astroanywhere/agent@latest launch\n\n  Astro Agent Runner v0.2.1\n\n  +--------------------------------------------------------------+\n  |  my-macbook (this device)                                    |\n  |  Apple Silicon - darwin/arm64 - v0.2.1                       |\n  |                                                              |\n  |  Hardware                                                    |\n  |    CPU   Apple M3 Max (16 cores)                             |\n  |    RAM   128 GB (98 GB available)                            |\n  |    GPU   Apple M3 Max (48 GB)                                |\n  |                                                              |\n  |  AI Agents                                                   |\n  |    \u003e claude-code v1.0.22 - model: sonnet-4                   |\n  |    \u003e codex v0.1.2                                            |\n  |    \u003e openclaw v0.3.1                                         |\n  |    \u003e opencode v0.2.0                                         |\n  |                                                              |\n  |  Runner: a1b2c3d4                                            |\n  +--------------------------------------------------------------+\n\n  Discovering SSH hosts... found 2: hpc-login, dev-vm\n\n  To authenticate, open this URL in your browser:\n\n    https://astroanywhere.com/device?code=ABCD-1234\n\n  Waiting for approval...\n  \u003e Authenticated as you@example.com\n  \u003e Machine \"my-macbook\" registered\n\n  Installing on remote hosts...\n\n  +------------------------------------------------+\n  |  [*] hpc-login (running)                       |\n  |  user@hpc.university.edu                       |\n  |  linux/x86_64 - 128 cores - 1024 GB RAM        |\n  |    NVIDIA A100 (80 GB) x4                      |\n  |                                                |\n  |  AI Agents                                     |\n  |    \u003e claude-code v1.0.22                       |\n  |    \u003e openclaw v0.3.1                           |\n  +------------------------------------------------+\n\n  +------------------------------------------------+\n  |  [*] dev-vm (running)                          |\n  |  ubuntu@10.0.1.50                              |\n  |  linux/x86_64 - 8 cores - 32 GB RAM            |\n  |                                                |\n  |  AI Agents                                     |\n  |    \u003e codex v0.1.2                              |\n  |    \u003e opencode v0.2.0                           |\n  +------------------------------------------------+\n\n  Remote agents: 2 running, 0 failed\n  \u003e Connected to relay\n\n  Ready. Listening for tasks...\n```\n\nYour laptop and all remote hosts appear in the [Astro Dashboard](https://astroanywhere.com). Dispatch tasks to any of them.\n\n### Remote Machines via SSH\n\n`launch` reads your `~/.ssh/config`, discovers reachable hosts, installs the agent runner over SSH, and starts them \u0026mdash; all from your laptop. To set up a single remote machine manually:\n\n```bash\nssh user@remote-host\nnpx @astroanywhere/agent@latest launch --no-ssh-config\n```\n\nAstro picks the best available machine for each task based on load and capabilities.\n\n### Installing on Slurm (HPC Clusters)\n\nOn HPC clusters, login nodes enforce strict resource limits and kill long-running processes. You have two options for installing the agent runner:\n\n#### Option A \u0026mdash; From the login node (simplest)\n\nSSH to the login node and run setup directly. The setup process is lightweight and completes in under a minute:\n\n```bash\nssh user@hpc-login.university.edu\nnpx @astroanywhere/agent@latest launch --no-ssh-config\n```\n\n#### Option B \u0026mdash; From a compute node (if the login node blocks it)\n\nRequest an interactive allocation first, then launch from the compute node:\n\n```bash\nssh user@hpc-login.university.edu\nsrun --time=8:00:00 --mem=4G --pty bash\nnpx @astroanywhere/agent@latest launch --no-ssh-config\n```\n\n**Before running `launch`**, install at least one AI coding agent on the cluster:\n\n```bash\nnpm i -g @anthropic-ai/claude-code   # Claude Code (recommended)\nnpm i -g @openai/codex                # or Codex\nnpm i -g openclaw                     # or OpenClaw\n```\n\n\u003e **Note:** The agent runner uses Slurm to submit AI agent jobs to compute nodes automatically. Once installed, Astro dispatches tasks as Slurm jobs \u0026mdash; you don't need to manage `sbatch` yourself.\n\n### Re-setup \u0026amp; Force Setup\n\nWhen you reinstall the agent runner on a device that was previously configured, the existing configuration (SSH hosts, authentication tokens, relay settings) is reused from the first run. This means new SSH hosts won't be discovered and stale settings won't be refreshed.\n\nTo force a full re-setup:\n\n```bash\nnpx @astroanywhere/agent@latest launch --force-setup\n```\n\nThis re-runs the entire setup flow: re-detects AI agents, re-discovers SSH hosts, re-authenticates with the relay, and updates all stored configuration. Use this when:\n\n- You've added new SSH hosts to `~/.ssh/config`\n- Authentication tokens have expired or changed\n- You've installed or removed AI agents\n- The agent runner was updated to a new version with config changes\n- Remote hosts were reconfigured or replaced\n\nYou can also run setup independently without starting the agent:\n\n```bash\nnpx @astroanywhere/agent@latest setup --with-ssh-config\n```\n\n---\n\n# How to Use Astro\n\nFour ways to use Astro, from simplest to most flexible.\n\n---\n\n## 1. Try the Built-in Templates\n\nThe fastest way to see Astro in action. Each template is a pre-built workflow that generates a complete deliverable \u0026mdash; just provide your inputs.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/usage-examples.svg?v=2\" alt=\"Built-in templates workflow\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n### Moat \u0026amp; Fragility Analysis\n\nGenerate a comprehensive stock analysis report with competitive advantage scoring, moat assessment (7 Powers framework), and anti-fragility rating.\n\n**What you provide:**\n- Ticker symbols (e.g., `AAPL, GOOG, MSFT`)\n- A working directory for output files\n\n**What you get:** PDF report with charts, scoring tables, and investment recommendations.\n\n```\nCreate a new project → select \"Moat \u0026 Fragility Analysis\" template\n→ enter tickers and output directory → Astro generates plan → execute\n```\n\n### Academic Paper Review\n\nGenerate a structured peer review with scoring rubric, methodology critique, and improvement suggestions.\n\n**What you provide:**\n- A PDF of the paper (or arXiv URL)\n- A working directory for the review output\n\n**What you get:** Detailed review document following conference standards.\n\n### Academic Presentation\n\nGenerate conference-ready presentation slides from a research paper.\n\n**What you provide:**\n- A PDF of the paper (or arXiv URL)\n- A working directory for the slides\n\n**What you get:** Slide deck with figures, key results, and speaker notes.\n\n### Daily Paper Analysis\n\nGenerate a comprehensive digest of all HuggingFace Daily Papers for any date, plus in-depth analyses of the top-ranked papers with architecture figures and key equations.\n\n**What you provide:**\n- A date (YYYY-MM-DD) \u0026mdash; weekdays typically have 24-49 papers\n- Number of papers for deep analysis (default: top 10 by upvotes)\n- A working directory for output files\n\n**What you get:** All-papers digest (HTML + Markdown + PDF), individual deep-dive analyses with SVG architecture diagrams, and a compiled document assembling everything. All outputs are dual-format: styled HTML for direct reading and Obsidian-compatible Markdown with YAML frontmatter.\n\n\u003e **All templates run as parallel task graphs.** Astro decomposes the work into independent subtasks (data collection, analysis, writing) and executes them across your machines simultaneously. See the [astro-examples](https://github.com/astro-anywhere/astro-examples) repo for concrete examples of planning DAGs and deliverables from the built-in templates.\n\n---\n\n## 2. Plan \u0026amp; Execute Complex Tasks\n\nFor tasks that don't fit a template \u0026mdash; building features, refactoring codebases, writing research pipelines. Describe your goal in natural language and let Astro decompose it into a dependency graph of tasks.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/usage-plan-execute.svg?v=2\" alt=\"Plan and execute workflow\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n### The Workflow\n\n**Step 1 \u0026mdash; Describe your goal.** Write what you want to achieve in plain language. Point Astro at a repository or working directory.\n\n```\n\"Build a REST API with authentication, CRUD endpoints for users and posts,\n database migrations, and comprehensive test coverage\"\n```\n\n**Step 2 \u0026mdash; AI generates a plan.** Astro creates a dependency graph of tasks, each with a clear scope, estimated effort, and dependencies. You see the full graph before anything executes.\n\n**Step 3 \u0026mdash; Review and refine.** You can:\n- **Chat with the planning agent** to replan \u0026mdash; *\"Split the auth task into JWT and OAuth\"*\n- **Edit tasks directly** \u0026mdash; add, remove, reorder, change descriptions\n- **Adjust dependencies** \u0026mdash; make tasks parallel or sequential\n\n**Step 4 \u0026mdash; Execute.** Tasks dispatch to your machines in dependency order. Independent tasks run in parallel on separate git branches. You get real-time visibility into every agent session.\n\n**Step 5 \u0026mdash; Steer mid-flight.** While tasks execute, you can:\n- **Send guidance** to a running agent \u0026mdash; *\"Use Postgres instead of SQLite\"*\n- **Approve or reject** tool calls and file changes\n- **Replan remaining tasks** based on what you've seen so far\n\nEach completed task produces a pull request (or commits, depending on your delivery mode). Review and merge at your pace.\n\n---\n\n## 3. Custom Projects \u0026amp; Task Graphs\n\nFor recurring workflows or custom pipelines, create your own projects with hand-crafted task graphs. Mix independent and dependent tasks to model any workflow.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/usage-custom-tasks.svg?v=2\" alt=\"Custom task graphs\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n### Example: Daily Research Digest\n\nCreate a project called **\"Daily Research Digest\"** with three tasks, or [click to import](https://astroanywhere.com/share/de2f74d9-c451-4bca-99bd-7f3797519e7d):\n\n| Task | Dependencies | What it does |\n|---|---|---|\n| **Scrape trending from X/Twitter** | None | Collect today's trending topics in AI/ML |\n| **Get top papers from HuggingFace** | None | Fetch today's top papers from Daily Papers |\n| **Summarize \u0026amp; generate report** | Both above | Combine sources into a Markdown digest |\n\nThe first two tasks run **in parallel** (no dependencies). The summary task waits for both to finish, then produces the final report.\n\n### Example: Data Pipeline\n\nCreate a sequential pipeline where each step depends on the previous:\n\n```\nCollect Data → Process \u0026 Analyze → Generate Report → Done\n```\n\n### Example: Multi-Feature Development\n\nCreate parallel feature branches that merge independently:\n\n| Task | Dependencies | Delivery |\n|---|---|---|\n| Add user authentication | None | PR to `main` |\n| Build API endpoints | None | PR to `main` |\n| Write database migrations | None | PR to `main` |\n| Integration tests | All three above | PR to `main` |\n\nThree features develop in parallel on isolated git worktrees. The integration test task waits for all three, then runs against the combined code.\n\n### How to Create Custom Tasks\n\n1. **Create a project** in the Dashboard \u0026mdash; give it a name and point it at a directory or repo\n2. **Add tasks manually** \u0026mdash; each task has a title, description, and optional dependencies\n3. **Draw dependencies** \u0026mdash; connect tasks in the graph view to define execution order\n4. **Execute** \u0026mdash; Astro dispatches tasks respecting the dependency graph\n\n---\n\n## 4. Playground \u0026mdash; Single Agent Sessions\n\nFor quick, one-off tasks that don't need planning. The Playground launches a direct **Claude Code** or **Codex** session on any of your registered machines.\n\n```\nOpen Playground → pick a machine → describe what you want → go\n```\n\nThis is equivalent to opening a terminal and running `claude` or `codex` directly, but with:\n- **Machine selection** \u0026mdash; run on your laptop, a GPU server, or an HPC node\n- **Full observability** \u0026mdash; see the session from any device, no terminal needed\n- **Session persistence** \u0026mdash; close the browser, come back later, the session is still there\n- **Steering** \u0026mdash; send messages to the agent mid-execution from the Dashboard\n\nUse Playground when you want to:\n- Quickly prototype or debug something on a specific machine\n- Run a one-off analysis without creating a full project\n- Test an agent on a new codebase before committing to a plan\n\n---\n\n## Authentication\n\n\u003e **Key concept:** Astro does not access your API keys directly. The agent runner spawns AI agents (Claude Code, Codex, etc.) as subprocesses and passes your shell environment through. Each agent handles its own authentication using its own credentials. Your keys never leave your machine and Astro never sees them.\n\n### Claude Code\n\nClaude Code supports multiple authentication backends. Add the relevant environment variables to your shell profile (`~/.zshrc` on macOS, `~/.bashrc` on Linux).\n\n**Anthropic cloud \u0026mdash; OAuth token (recommended)**\n\n```bash\nclaude setup-token\n# Then add to your shell profile:\nexport CLAUDE_CODE_OAUTH_TOKEN=\u003cpaste-token-here\u003e\n```\n\n**Anthropic cloud \u0026mdash; API key**\n\n```bash\nexport ANTHROPIC_API_KEY=sk-ant-...\n```\n\n**Amazon Bedrock**\n\n```bash\nexport CLAUDE_CODE_USE_BEDROCK=1\nexport AWS_REGION=us-west-2\n\n# Option 1: explicit keys\nexport AWS_ACCESS_KEY_ID=AKIA...\nexport AWS_SECRET_ACCESS_KEY=...\n\n# Option 2: AWS profile (recommended)\nexport AWS_PROFILE=default\n```\n\n\u003e Bedrock models use different model IDs (e.g., `anthropic.claude-sonnet-4-20250514`). The agent runner auto-detects Bedrock model formats and disables sandbox mode, which is not supported on Bedrock.\n\n**Google Vertex AI**\n\n```bash\nexport CLAUDE_CODE_USE_VERTEX=1\nexport CLOUD_ML_REGION=us-east5\nexport ANTHROPIC_VERTEX_PROJECT_ID=my-gcp-project\n```\n\n**Third-party models via Claude Code**\n\nClaude Code can also be configured to use third-party model providers that expose an OpenAI-compatible API. This allows using models like MiniMax-M1, Kimi K2, GLM-5, or Doubao through Claude Code's interface. Set `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY`, and `ANTHROPIC_MODEL` to point at the provider:\n\n```bash\n# MiniMax\nexport ANTHROPIC_BASE_URL=https://api.minimax.chat/v1\nexport ANTHROPIC_API_KEY=\u003cyour-minimax-key\u003e\nexport ANTHROPIC_MODEL=MiniMax-M1\n\n# Kimi (Moonshot)\nexport ANTHROPIC_BASE_URL=https://api.moonshot.cn/v1\nexport ANTHROPIC_API_KEY=\u003cyour-moonshot-key\u003e\nexport ANTHROPIC_MODEL=kimi-k2\n\n# GLM (Zhipu AI)\nexport ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/paas/v4\nexport ANTHROPIC_API_KEY=\u003cyour-zhipu-key\u003e\nexport ANTHROPIC_MODEL=glm-5\n\n# Doubao (ByteDance / Volcengine ModelArk)\nexport ANTHROPIC_BASE_URL=https://ark.cn-beijing.volces.com/api/v3\nexport ANTHROPIC_API_KEY=\u003cyour-volcengine-key\u003e\nexport ANTHROPIC_MODEL=\u003cyour-endpoint-id\u003e\n```\n\n\u003e **Experimental:** Third-party model support depends on Claude Code's compatibility layer. Some features (tool use, streaming, sandbox) may not work with all providers. This is not tested by the Astro team \u0026mdash; refer to each provider's documentation for Claude Code integration details (e.g., [BytePlus ModelArk](https://docs.byteplus.com/en/docs/ModelArk/1928262), [Zhipu AI](https://docs.z.ai/devpack/tool/claude)).\n\n**Troubleshooting:** On remote machines or HPC clusters, session-based login (`claude login`) may not work. Use one of the export methods above instead.\n\n### Codex\n\nCodex authenticates with an OpenAI API key. Add it to your shell profile:\n\n```bash\nexport OPENAI_API_KEY=sk-...\n```\n\nOr configure it in `~/.codex/config.toml`:\n\n```toml\nmodel = \"gpt-5.3-codex\"\n```\n\nAvailable Codex models (run `codex -m \u003cmodel_name\u003e` to switch):\n\n| Model | Description |\n|---|---|\n| `gpt-5.3-codex` | Latest frontier agentic coding model (default) |\n| `gpt-5.4` | Latest frontier agentic coding model |\n| `gpt-5.2-codex` | Frontier agentic coding model |\n| `gpt-5.1-codex-max` | Codex-optimized flagship for deep and fast reasoning |\n| `gpt-5.2` | Latest frontier model with improvements across knowledge, reasoning and coding |\n| `gpt-5.1-codex-mini` | Optimized for codex \u0026mdash; cheaper, faster, but less capable |\n\n### OpenClaw \u0026amp; OpenCode\n\nThese agents support multiple model providers (OpenAI, Anthropic, Google, etc.). Configure them through their own CLI or config files \u0026mdash; refer to each agent's documentation for details.\n\n---\n\n## Commands\n\nThe agent runner provides several commands for managing your setup:\n\n| Command | Description |\n|---|---|\n| `launch` | Setup (if needed) + start \u0026mdash; the recommended one-command entry point |\n| `start` | Start the agent runner (assumes setup is already complete) |\n| `stop` | Stop the running agent process |\n| `status` | Show current agent status, machine info, and connection state |\n| `logs` | View agent runner logs (`-f` to follow, `-n` for line count, `--host` for remote) |\n| `setup` | Run initial setup independently (detect agents, authenticate, configure relay) |\n| `auth` | Set or clear Claude OAuth token for agent SDK authentication |\n| `config` | Show, modify, reset, or import configuration |\n| `providers` | List detected AI agent providers on this machine |\n| `resources` | Show machine hardware (CPU, memory, GPU) |\n| `hosts` | Discover remote hosts from SSH config |\n| `connect` | Alias for `start --foreground` \u0026mdash; run in the current terminal |\n| `mcp` | Start MCP server for Claude Code integration (stdio mode) |\n\n### Common Options\n\n**`launch`** supports all setup and start options in one command:\n\n```bash\n# Force re-setup + start in foreground\nnpx @astroanywhere/agent@latest launch --force-setup -f\n\n# Skip SSH discovery (local-only mode)\nnpx @astroanywhere/agent@latest launch --no-ssh-config\n\n# Skip remote host launching (setup SSH but only run local)\nnpx @astroanywhere/agent@latest launch --no-launch-all\n\n# Non-interactive mode (for scripts and batch jobs)\nnpx @astroanywhere/agent@latest launch --non-interactive --no-ssh-config\n```\n\n**`start`** controls the runtime behavior:\n\n```bash\n# Run in foreground with debug logging\nnpx @astroanywhere/agent@latest start -f --log-level debug\n\n# Limit concurrent tasks\nnpx @astroanywhere/agent@latest start --max-tasks 2\n\n# Keep worktrees after task completion (for debugging)\nnpx @astroanywhere/agent@latest start --preserve-worktrees\n```\n\n**`logs`** helps with troubleshooting:\n\n```bash\n# Follow logs in real time\nnpx @astroanywhere/agent@latest logs -f\n\n# Filter logs for a specific task\nnpx @astroanywhere/agent@latest logs -f | grep \"taskId\"\n\n# Show last 100 lines\nnpx @astroanywhere/agent@latest logs -n 100\n\n# View logs from a remote host\nnpx @astroanywhere/agent@latest logs --host hpc-login\n```\n\n---\n\n## Key Features\n\n### 1. Planning \u0026amp; Parallel Execution\n\nDescribe what you want to build. Astro decomposes your goal into a **dependency graph** (DAG) of tasks, then executes them in parallel across your machines \u0026mdash; respecting the dependency order automatically.\n\nA complex feature that would take hours of serial work gets broken into independent subtasks. Tasks without dependencies run simultaneously on separate git branches. Dependent tasks wait only for their upstream inputs, not for unrelated work to finish.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/dag-workflow.svg\" alt=\"DAG parallel execution\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n\u003e **Tasks A, B, C run in parallel.** Task D waits for A + B. Task E waits for C.\n\u003e Total time = **longest path**, not sum of all tasks.\n\n### 2. Supporting Mainstream AI Agents\n\nAstro works with the AI coding agents you already use. Install any supported agent \u0026mdash; Astro detects it at startup and dispatches tasks automatically.\n\n| Agent | Install | Website |\n|---|---|---|\n| **Claude Code** | `npm i -g @anthropic-ai/claude-code` | [anthropic.com/claude-code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) |\n| **Codex** | `npm i -g @openai/codex` | [github.com/openai/codex](https://github.com/openai/codex) |\n| **Pi** | `npm i -g @mariozechner/pi-coding-agent` | [github.com/badlogic/pi-mono](https://github.com/badlogic/pi-mono) |\n| **OpenClaw** | `npm i -g openclaw` | [github.com/openclaw-ai/openclaw](https://github.com/openclaw-ai/openclaw) |\n| **OpenCode** | `bun i -g opencode` | [github.com/opencode-ai/opencode](https://github.com/opencode-ai/opencode) |\n\nPi is the coding agent that powers OpenClaw. If you have OpenClaw installed, Pi is already available \u0026mdash; Astro detects it automatically. You can also install Pi standalone for direct access to its multi-provider model support (Anthropic, OpenAI, Google, Bedrock, custom providers via `models.json`).\n\nAll agents get full project context injection, real-time output streaming, and session preservation for multi-turn resume. Your API keys stay on your machine \u0026mdash; Astro never sees them.\n\n### 3. GitHub-Native Workflow\n\nEvery task runs on its own **git worktree** \u0026mdash; a real, isolated branch with no conflicts. When the agent finishes, the runner commits the changes, pushes the branch, and opens a pull request automatically.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/github-workflow.svg\" alt=\"GitHub-native workflow\" width=\"800\"/\u003e\n\u003c/p\u003e\n\nNo merge conflicts between parallel tasks. Each branch is isolated. Review and merge at your own pace.\n\n### 4. Mission Control \u0026amp; Full Observability\n\nThe [Astro Dashboard](https://astroanywhere.com) gives you full visibility into every agent session, tool execution, and file change across all your projects and machines:\n\n- **Observe** \u0026mdash; see the full dialogue of AI agents, every tool call, every file diff, in real time\n- **Steer** \u0026mdash; send guidance or redirect agents mid-execution\n- **Decide** \u0026mdash; approve, reject, or rerun from any device \u0026mdash; no terminal needed\n- **Scale** \u0026mdash; multi-machine routing by load and capability\n\n---\n\n## Architecture\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/architecture.svg\" alt=\"Architecture diagram\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n\u003e **Astro Server** generates plans, breaks them into tasks, and dispatches to agent runners. Each **Agent Runner** (this repo) selects an AI agent, deploys jobs to compute backends, and streams progress back to the server.\n\n---\n\n## Integration in OpenClaw\n\n\u003c!-- Coming soon — waiting for Xi Fu to start --\u003e\n\nMonitor and control Astro directly inside [OpenClaw](https://github.com/openclaw-ai/openclaw). View project status, track running tasks, steer agents, and approve results \u0026mdash; all from the OpenClaw interface.\n\n\u003e *This integration is under development. Details coming soon.*\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://astroanywhere.com/landing/\"\u003eastroanywhere.com\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro-anywhere%2Fastro-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastro-anywhere%2Fastro-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro-anywhere%2Fastro-agent/lists"}