{"id":51076942,"url":"https://github.com/zozo123/rust-rover-plugin-crabbox","last_synced_at":"2026-06-23T15:01:58.887Z","repository":{"id":364998255,"uuid":"1270066058","full_name":"zozo123/rust-rover-plugin-crabbox","owner":"zozo123","description":"RustRover plugin for running Rust commands in OpenClaw Crabbox sandboxes","archived":false,"fork":false,"pushed_at":"2026-06-15T13:07:07.000Z","size":95,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T13:10:35.519Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/zozo123.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-06-15T10:57:01.000Z","updated_at":"2026-06-15T13:06:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zozo123/rust-rover-plugin-crabbox","commit_stats":null,"previous_names":["zozo123/rust-rover-plugin-crabbox"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/zozo123/rust-rover-plugin-crabbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Frust-rover-plugin-crabbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Frust-rover-plugin-crabbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Frust-rover-plugin-crabbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Frust-rover-plugin-crabbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zozo123","download_url":"https://codeload.github.com/zozo123/rust-rover-plugin-crabbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Frust-rover-plugin-crabbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34694786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-23T15:01:56.860Z","updated_at":"2026-06-23T15:01:58.879Z","avatar_url":"https://github.com/zozo123.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crabbox Runner for RustRover\n\nCrabbox Runner turns RustRover into a remote proof button for Rust. The plugin\nkeeps the project, inspections, and normal edit loop local, then delegates\nexpensive or evidence-sensitive commands to the local `crabbox` CLI:\n\n```bash\ncrabbox run -- cargo test\ncrabbox run -- cargo test --workspace\ncrabbox run -- cargo clippy --all-targets\n```\n\nThat is the product promise: click once in RustRover to prove the code you are\nediting in a real Crabbox or Islo sandbox, with streamed output and durable\nevidence coming back to the IDE.\n\n## Website\n\nhttps://zozo123.github.io/rust-rover-plugin-crabbox/\n\n## Why This Shape\n\nOpenClaw Crabbox is a remote testbox and sandbox control plane, not a generic\nshell script. A RustRover plugin should therefore wrap the official local CLI\ninstead of reimplementing lease, broker, SSH, rsync, delegated provider, auth, or\nartifact behavior.\n\nThe resulting architecture is intentionally thin:\n\n```text\nRustRover action / run configuration\n  -\u003e Crabbox Runner plugin\n  -\u003e local crabbox CLI\n  -\u003e Crabbox broker + SSH/rsync or delegated provider\n  -\u003e remote runner\n```\n\nThis fits Rust teams that have bigger CI-like test workloads than their laptops\ncan comfortably handle, need remote Linux or provider-specific environments, or\nwant reproducible evidence from local development and agent-assisted work.\n\n## MVP Features\n\n- `Tools \u003e Crabbox \u003e Doctor`\n- `Tools \u003e Crabbox \u003e Doctor Islo`\n- `Tools \u003e Crabbox \u003e Login...`\n- `Tools \u003e Crabbox \u003e Init Repo`\n- `Tools \u003e Crabbox \u003e Sync Plan`\n- `Tools \u003e Crabbox \u003e Warmup Box`\n- `Tools \u003e Crabbox \u003e Run Cargo Test`\n- `Tools \u003e Crabbox \u003e Run Cargo Test Workspace`\n- `Tools \u003e Crabbox \u003e Run Cargo Clippy`\n- `Tools \u003e Crabbox \u003e Run Cargo Nextest`\n- `Tools \u003e Crabbox \u003e Run Cargo Test on Islo`\n- `Tools \u003e Crabbox \u003e Run Islo Rust Smoke`\n- `Tools \u003e Crabbox \u003e Stop Lease...`\n- Persistent `Crabbox` run configurations for commands like\n  `cargo test --workspace`\n- Console links for Crabbox URLs, `run_...` ids, and `cbx_...` lease ids\n\n## Install From GitHub\n\n1. Open the latest GitHub release.\n2. Download `crabbox-rustrover-0.3.5.zip`.\n3. In RustRover, open `Settings \u003e Plugins`.\n4. Choose the gear menu, then `Install Plugin from Disk...`.\n5. Select the downloaded zip and restart RustRover.\n\nAfter restart, open a Rust project and run `Tools \u003e Crabbox \u003e Doctor`.\n\n## Settings\n\nOpen `Settings \u003e Crabbox`:\n\n- `Crabbox executable`: defaults to `crabbox`; set `/path/to/crabbox.sh` only if\n  your team really uses a wrapper.\n- `Broker URL`: used by the login action when present.\n- `Default provider`: optional, for example `hetzner`, `aws`, or `islo`.\n- `Default class`: optional, for example `standard`, `fast`, `large`, or `beast`.\n- `Default Crabbox args`: extra flags appended before the Cargo command.\n- `Islo Rust image`: defaults to\n  `ghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5`, so\n  Cargo, clippy, rustfmt, nextest, OpenSSL, protobuf, and native build tools are\n  available in the remote sandbox.\n- `Islo API key`: stored in IntelliJ Password Safe and injected into Crabbox\n  runs as `ISLO_API_KEY`.\n\nThe plugin does not store broker tokens. Use Crabbox's own login flow.\n\n## Islo Smoke Test\n\nAfter installing Crabbox and authenticating:\n\n```bash\nbrew install openclaw/tap/crabbox\ncrabbox doctor\n```\n\nIn RustRover:\n\n1. Open `Settings \u003e Crabbox`.\n2. Paste your Islo API key into `Islo API key`.\n3. Keep `Islo Rust image` as the default Crabbox Rust Runner image, or replace\n   it with your own baked image.\n4. Run `Tools \u003e Crabbox \u003e Doctor Islo`.\n5. Run `Tools \u003e Crabbox \u003e Run Islo Rust Smoke` to confirm the provider path.\n6. In a Rust project, run `Tools \u003e Crabbox \u003e Run Cargo Test on Islo`.\n\nThe expected CLI shape is:\n\n```bash\nISLO_API_KEY=... crabbox doctor --provider islo\nISLO_API_KEY=... crabbox run --provider islo --islo-image ghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5 -- cargo --version\ncrabbox run --provider islo --islo-image ghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5 -- cargo test\n```\n\nIf the Islo provider name or account setup differs in your Crabbox deployment,\nkeep the plugin unchanged and put the correct provider flags in `Default Crabbox\nargs` or a saved run configuration.\n\n## How Crabbox Resolves Your Project\n\nCrabbox syncs and runs from the **enclosing git repository root**, not the\nfolder you launched from. If your `Cargo.toml` is at the repo root (the usual\ncase), `cargo test` just works. If the crate lives in a subdirectory, a bare\n`cargo test` runs at the repo root and fails with\n`could not find Cargo.toml ... or any parent directory`.\n\nThe plugin handles this: the Cargo actions detect the manifest directory and\n`cd` into it relative to the git root before running Cargo, so monorepo crates\nand the bundled demo work without extra configuration.\n\n## Demo Crate\n\n`examples/hello-crabbox` is a tiny crate that exists to prove the path end to\nend. Verified with the published runner image via Crabbox's local container\nprovider (the same sync + image + `cargo test` path Islo uses):\n\n```bash\ncrabbox run \\\n  --provider local-container \\\n  --local-container-image ghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5 \\\n  -- bash -lc 'cd examples/hello-crabbox \u0026\u0026 cargo test'\n# Compiling hello-crabbox v0.1.0\n# test result: ok. 2 passed; 0 failed\n# run summary ... exit=0\n```\n\nTo run it on Islo, swap the provider and image flags:\n\n```bash\ncrabbox run \\\n  --provider islo \\\n  --islo-image ghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5 \\\n  -- bash -lc 'cd examples/hello-crabbox \u0026\u0026 cargo test'\n```\n\n## Rust Runner Image\n\nThe recommended use case is a dependency-heavy Rust project where local output is\nnot enough proof: native crates, OpenSSL/protobuf bindings, generated code,\nagent-written tests, or `cargo nextest` suites that should run in a clean remote\nsandbox.\n\nThe runner image lives in `docker/rust-runner` and is published to GHCR:\n\n```text\nghcr.io/zozo123/rust-rover-plugin-crabbox/crabbox-rust-runner:0.3.5\n```\n\nIt includes Rust stable, `clippy`, `rustfmt`, `cargo-nextest`, `clang`, `lld`,\n`mold`, `cmake`, `pkg-config`, `libssl-dev`, `protobuf-compiler`, `git`, `ssh`,\nand `rsync`.\n\n## Build\n\n```bash\n./gradlew buildPlugin\n./gradlew runIde\n```\n\nThe installable zip is written to `build/distributions/`.\n\nThe plugin targets IntelliJ Platform build `252+` and avoids RustRover-specific\nAPIs in this MVP, so it should run in RustRover and other compatible IntelliJ\nPlatform IDEs that can execute external tools.\n\n## Roadmap\n\nThe next valuable layer is Rust-aware context detection:\n\n- run the test under the caret;\n- infer `cargo test -p \u003cpackage\u003e \u003ctest_name\u003e`;\n- surface `crabbox events`, `results`, `artifacts`, `ssh`, and `webvnc` actions\n  from parsed console metadata;\n- warn when `.crabbox.yaml` is missing or `sync-plan` looks too large;\n- offer cleanup notifications for kept leases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozo123%2Frust-rover-plugin-crabbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzozo123%2Frust-rover-plugin-crabbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozo123%2Frust-rover-plugin-crabbox/lists"}