{"id":49849053,"url":"https://github.com/TimBeyer/clawctl","last_synced_at":"2026-05-16T11:00:48.957Z","repository":{"id":343923500,"uuid":"1172988595","full_name":"TimBeyer/clawctl","owner":"TimBeyer","description":"Run OpenClaw gateways in isolated VMs","archived":false,"fork":false,"pushed_at":"2026-05-13T23:18:32.000Z","size":9285,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-13T23:34:13.444Z","etag":null,"topics":["clawbot","clawctl","cli","openclaw","openclaw-installer","openclaw-setup","openclaw-vm"],"latest_commit_sha":null,"homepage":"https://timbeyer.github.io/clawctl/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimBeyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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-03-04T22:36:03.000Z","updated_at":"2026-05-13T23:08:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TimBeyer/clawctl","commit_stats":null,"previous_names":["timbeyer/clawctl"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/TimBeyer/clawctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimBeyer%2Fclawctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimBeyer%2Fclawctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimBeyer%2Fclawctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimBeyer%2Fclawctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimBeyer","download_url":"https://codeload.github.com/TimBeyer/clawctl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimBeyer%2Fclawctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["clawbot","clawctl","cli","openclaw","openclaw-installer","openclaw-setup","openclaw-vm"],"created_at":"2026-05-14T14:00:19.876Z","updated_at":"2026-05-16T11:00:48.940Z","avatar_url":"https://github.com/TimBeyer.png","language":"TypeScript","funding_links":[],"categories":["Integrations \u0026 Features"],"sub_categories":["Monitoring \u0026 Dashboards"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/clawctl.jpg\" alt=\"clawctl\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eclawctl\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eRun OpenClaw gateways in isolated VMs — managed entirely from your Mac.\u003c/strong\u003e\u003cbr\u003e\n  \u003cem\u003eYou never touch the VM. Config lives on your host, git-tracked and reproducible.\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"docs/getting-started.md\"\u003eGetting Started\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/headless-mode.md\"\u003eHeadless Mode\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/config-reference.md\"\u003eConfig Reference\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/troubleshooting.md\"\u003eTroubleshooting\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Install\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/TimBeyer/clawctl/main/install.sh | bash\n```\n\nRequires macOS on Apple Silicon (M1–M4) with [Homebrew](https://brew.sh). Lima is installed automatically.\n\n## Quickstart\n\n```bash\nclawctl create\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/demo.gif\" alt=\"clawctl create wizard\"\u003e\n\u003c/p\u003e\n\nIn about five minutes, the wizard gives you:\n\n- A running OpenClaw gateway with a dashboard at `http://localhost:18789`\n- An isolated Ubuntu 24.04 VM with Node.js, Tailscale, and the 1Password CLI pre-installed\n- A project directory on your Mac with git-tracked config and persistent data that survives VM rebuilds\n\nFor automated setups, pass a JSON config file and skip the prompts — see [Headless Mode](docs/headless-mode.md).\n\n## Features\n\n- **Fully isolated** — each gateway runs in its own Ubuntu VM; nothing installed on your Mac\n- **Zero VM wrangling** — interactive wizard or headless config file, no manual provisioning\n- **Git-friendly** — config and data live in your project directory, not buried in a VM\n- **Reproducible** — delete the VM, recreate it, pick up right where you left off\n- **Secret management** — 1Password `op://` references and `env://` variables; zero plaintext secrets in config\n- **Remote access** — optional Tailscale integration for accessing your gateway from anywhere\n- **15+ AI providers** — Anthropic, OpenAI, Gemini, Mistral, and more out of the box\n- **Run multiple gateways** — each instance gets its own isolated VM; spin up as many as you need\n- **CI/CD ready** — [headless mode](docs/headless-mode.md) for fully automated provisioning\n\n## Commands\n\n\u003e [!NOTE]\n\u003e **Terminology**: A clawctl **instance** is a Lima VM running an OpenClaw\n\u003e **gateway**. The gateway hosts one or more **agents**. clawctl manages the\n\u003e instance lifecycle; OpenClaw manages the agents inside it.\n\n| Command                                    | Description                                       |\n| ------------------------------------------ | ------------------------------------------------- |\n| `clawctl create`                           | Interactive wizard                                |\n| `clawctl create --config \u003cpath\u003e`           | Config-driven with TUI progress                   |\n| `clawctl create --config \u003cpath\u003e --plain`   | Plain log output (CI/automation)                  |\n| `clawctl list`                             | List all instances with live status               |\n| `clawctl status [name]`                    | Detailed info for one instance                    |\n| `clawctl start [name]`                     | Start a stopped instance                          |\n| `clawctl stop [name]`                      | Stop a running instance                           |\n| `clawctl restart [name]`                   | Stop + start + health checks                      |\n| `clawctl delete [name] [--purge]`          | Delete VM; `--purge` also removes project dir     |\n| `clawctl shell [name]`                     | Interactive shell into the VM                     |\n| `clawctl shell [name] -- \u003ccmd...\u003e`         | Run a command in the VM                           |\n| `clawctl openclaw \u003csubcommand...\u003e`         | Run an `openclaw` command in the VM (alias: `oc`) |\n| `clawctl mount list [name]`                | List all mounts for an instance                   |\n| `clawctl mount add \u003chost\u003e \u003cguest\u003e`         | Add a host directory mount (`--writable` for rw)  |\n| `clawctl mount remove \u003cguest-path\u003e`        | Remove a user-added mount                         |\n| `clawctl use [name] [--global]`            | Set or show the current instance context          |\n| `clawctl register \u003cname\u003e --project \u003cpath\u003e` | Register an existing (pre-registry) instance      |\n| `clawctl completions \u003cshell\u003e`              | Generate shell completion script (bash or zsh)    |\n\nInstance commands accept an optional name, a `-i`/`--instance` flag, or\nresolve automatically from context (`CLAWCTL_INSTANCE` env var, `.clawctl`\nfile, or global default via `clawctl use`).\n\n\u003e [!TIP]\n\u003e No need to shell in for routine operations — `clawctl oc` runs any\n\u003e `openclaw` subcommand inside the VM: `clawctl oc doctor`,\n\u003e `clawctl oc config get gateway.name`, etc.\n\n### Shell completions\n\nEnable tab completion for commands, options, instance names, and openclaw\nsubcommands:\n\n```bash\n# Bash — add to ~/.bashrc:\neval \"$(clawctl completions bash)\"\n\n# Zsh — add to ~/.zshrc:\neval \"$(clawctl completions zsh)\"\n```\n\nopenclaw subcommand completions (including deep completion like `oc config set\n\u003cTAB\u003e`) are cached from the VM and refreshed automatically. See [Shell\nCompletions](docs/shell-completions.md) for details.\n\n## Documentation\n\n- [Getting Started](docs/getting-started.md) — guided walkthrough for first-time users\n- [Headless Mode](docs/headless-mode.md) — config-file-driven provisioning for CI and scripted setups\n- [Config Reference](docs/config-reference.md) — full schema for headless config files\n- [1Password Setup](docs/1password-setup.md) — service accounts and `op://` secret references\n- [Tailscale Setup](docs/tailscale-setup.md) — auth keys, ACLs, remote dashboard access\n- [Snapshots and Rebuilds](docs/snapshots-and-rebuilds.md) — cloning VMs, data persistence, full rebuilds\n- [Project Directory](docs/project-directory.md) — what the CLI creates and how to customize it\n- [Shell Completions](docs/shell-completions.md) — tab completion setup and openclaw cache mechanics\n- [Troubleshooting](docs/troubleshooting.md) — common issues and fixes\n\n## Contributing\n\n```bash\nbun bin/cli.tsx create                                     # run the wizard\nbun bin/cli.tsx create --config examples/config.json       # headless mode\nbun build ./bin/cli.tsx --compile --outfile dist/clawctl   # build binary\nbun test                                                   # unit tests\nbun run lint                                               # ESLint\nbun run format:check                                       # Prettier check\n```\n\nTo install to a custom directory, set `INSTALL_DIR`:\n\n```bash\nINSTALL_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/TimBeyer/clawctl/main/install.sh | bash\n```\n\nSee [Architecture](docs/architecture.md), [CLI Wizard Flow](docs/cli-wizard-flow.md),\n[VM Provisioning](docs/vm-provisioning.md), and [Testing](docs/testing.md) for internals.\n\n---\n\n**Ready to go?**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/TimBeyer/clawctl/main/install.sh | bash\nclawctl create\n```\n\nYour gateway will be running in its own isolated VM in minutes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimBeyer%2Fclawctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTimBeyer%2Fclawctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimBeyer%2Fclawctl/lists"}