Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"owner": { "name": "NodeOps", "url": "https://createos.sh" },
"plugins": [
{
"name": "claude-code-plugin",
"name": "@createos/claude-code",
"source": "./packages/claude-code-plugin",
"description": "Run ad-hoc/heavy/untrusted code in disposable CreateOS Sandboxes; offload, parallel fanout, scratch shell, reusable box with sync, port tunnel, public expose, network clusters, S3 disks, WireGuard VPN, fork, pause/resume, and custom images."
}
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules/
bun.lock
packages/opencode-plugin/node_modules/
packages/opencode-plugin/bun.lock
package.json
package-lock.json
593 changes: 593 additions & 0 deletions .opencode/plugins/createos.ts

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
"rules": {},
"env": {
"builtin": true
}
},
"ignorePatterns": ["node_modules"]
}
40 changes: 22 additions & 18 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
# CLAUDE.md — createos (marketplace)
# CLAUDE.md — createos (integrations)

Public Claude Code plugin **marketplace** (`createos`). Its one plugin,
`createos-sandbox` (in `createos-sandbox/`), gives Claude a skill + slash
commands that drive the authed `createos` CLI to run ad-hoc / heavy / untrusted
code in disposable CreateOS sandboxes. Marketplace index is the root `README.md`;
plugin usage/install live in `createos-sandbox/README.md`; this file is the
cross-repo mesh guide.
Public plugin marketplace and integrations for CreateOS Sandbox. Three packages
ship IDE plugins that drive the authed `createos` CLI to run ad-hoc / heavy /
untrusted code in disposable CreateOS sandboxes:

| Package | IDE | Path |
| -------------------- | ----------- | ------------------------------ |
| `claude-code-plugin` | Claude Code | `packages/claude-code-plugin/` |
| `pi-extension` | Pi | `packages/pi-extension/` |
| `@createos/opencode` | OpenCode | `packages/opencode-plugin/` |

Marketplace index is the root `README.md`; each package has its own `README.md`.

## Decisions

Expand Down Expand Up @@ -44,21 +49,20 @@ member (see Cross-repo mesh below) — cross-reference only.

## Cross-repo mesh — CreateOS Sandbox

**You are in `createos` — the public Claude Code plugin marketplace; its
`createos-sandbox` plugin** shells out to the `createos` CLI, so `createos-cli`
command / flag changes hit hardest:
keep the skill + slash-command surfaces aligned with the CLI, and any behavior
**You are in `createos` — the public plugin marketplace; its plugins** shell
out to the `createos` CLI, so `createos-cli` command / flag changes hit hardest:
keep the skill + slash-command + tool surfaces aligned with the CLI, and any behavior
claim aligned with `fc`. This repo is one of five in the product mesh.

### Repo map

| repo | path | role | public? | changes that ripple across the mesh |
| ---------------- | ---------------------------------------- | --------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------- |
| **fc** | `../fc` | control-plane — **source of truth** | 🔒 private | HTTP API, wire/JSON fields, error shapes, lifecycle/state, limits/quotas, behavior |
| **fc-sdk** | `../fc-sdk` | TypeScript SDK **+ `examples/`** | 🌐 public | public SDK methods, wire types, example apps |
| **createos-cli** | `../createos-cli` | Go CLI | 🌐 public | commands, flags, help/UX text |
| **website-04** | `../website-04` (`content/docs/Sandbox`) | public docs | 🌐 public | REST / SDK / CLI reference + concept pages |
| **createos** | `../createos-claude-plugins` | Claude Code plugin marketplace; `createos-sandbox` plugin over the `createos` CLI | 🌐 public | skills, slash commands, hooks |
| repo | path | role | public? | changes that ripple across the mesh |
| ---------------- | ---------------------------------------- | ---------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------- |
| **fc** | `../fc` | control-plane — **source of truth** | 🔒 private | HTTP API, wire/JSON fields, error shapes, lifecycle/state, limits/quotas, behavior |
| **fc-sdk** | `../fc-sdk` | TypeScript SDK **+ `examples/`** | 🌐 public | public SDK methods, wire types, example apps |
| **createos-cli** | `../createos-cli` | Go CLI | 🌐 public | commands, flags, help/UX text |
| **website-04** | `../website-04` (`content/docs/Sandbox`) | public docs | 🌐 public | REST / SDK / CLI reference + concept pages |
| **createos** | `../createos-claude-plugins` | Plugin marketplace; Claude Code, Pi, OpenCode integrations over the `createos` CLI | 🌐 public | skills, slash commands, hooks, tools |

### What counts as a shared surface

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ apps in `apps/` are standalone projects.
1. Fork the repository and create a branch for your change.
2. Keep each PR scoped to one package or app.
3. Use [Conventional Commit](https://www.conventionalcommits.org/) style for your PR title
(e.g. `feat(pi-extension): add X`, `fix(adk-plugin): handle Y`).
(e.g. `feat(opencode): add X`, `fix(pi-extension): handle Y`, `fix(cos): correct Z`).
4. Run lint, build, and tests for the package you changed before opening the PR.
5. Open a pull request. A maintainer will review it and, once approved, merge it into `main`.

Expand Down
70 changes: 52 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@

# CreateOS Integrations

**[Claude Code](https://docs.claude.com/en/docs/claude-code) plugin & [Pi](https://github.com/anthropics/pi) extension for disposable sandbox compute.**
**[Claude Code](https://docs.claude.com/en/docs/claude-code) plugin, [Pi](https://github.com/anthropics/pi) extension & [OpenCode](https://opencode.ai) plugin for disposable sandbox compute.**

Run code **off your machine** in disposable [CreateOS](https://createos.sh) Sandboxes — from Claude Code or Pi.
Run code **off your machine** in disposable [CreateOS](https://createos.sh) Sandboxes — from Claude Code, Pi, or OpenCode.

[![Claude Code](https://img.shields.io/badge/Claude%20Code-plugin-6E56CF)](https://docs.claude.com/en/docs/claude-code)
[![Pi](https://img.shields.io/badge/Pi-extension-F97316)](https://github.com/anthropics/pi)
[![OpenCode](https://img.shields.io/badge/OpenCode-plugin-0EA5E9)](https://opencode.ai)
[![CreateOS](https://img.shields.io/badge/CreateOS-Sandboxes-0EA5E9)](https://createos.sh)
[![Spawn](https://img.shields.io/badge/create%20to%20first%20command-~200ms-22C55E)](https://createos.sh)
[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](#contributing)
Expand All @@ -33,7 +34,7 @@ Heavy builds, flaky test suites, and untrusted code don't belong on your laptop.
```bash
# 1. Add the marketplace + install the plugin
/plugin marketplace add NodeOps-app/createos-claude-plugins
/plugin install claude-code-plugin@createos
/plugin install @createos/claude-code@createos

# 2. Offload a heavy test run to a throwaway box (auto-destroys)
/createos-sandbox:offload . "npm ci && npm test"
Expand All @@ -49,14 +50,25 @@ pi install npm:@createos/pi
pi --createos
```

**OpenCode:**

```bash
# 1. Install the plugin
opencode plugin @createos/opencode --global

# 2. Launch opencode — sandbox tools are available automatically
opencode
```

The `createos` CLI **auto-installs** on first use. Sign in once with `createos login` (browser OAuth, run it in your own terminal) or `export CREATEOS_API_KEY=<key>`; check with `cos auth`. Prefer a local checkout? See [Install](#install).

## Packages

| Package | What it does |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**claude-code-plugin**](./packages/claude-code-plugin) | Hooks-based Claude Code plugin — offload, parallel fanout, scratch shell, reusable box with sync, port tunnel, public HTTPS expose, private-network clusters, BYO-S3 disk mounts, WireGuard VPN, and snapshot/fork — all driving the authed `createos` CLI. |
| [**pi-extension**](./packages/pi-extension) | Pi coding agent extension that transparently routes all built-in commands (bash, read, write, edit, ls, find, grep) to a remote CreateOS Sandbox, plus 26 additional tools for sandbox lifecycle, configuration, port tunnels, file sync, private networks, persistent disks, and device VPN — 33 tools total. |
| Package | What it does |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [**claude-code-plugin**](./packages/claude-code-plugin) | Hooks-based Claude Code plugin — offload, parallel fanout, scratch shell, reusable box with sync, port tunnel, public HTTPS expose, private-network clusters, BYO-S3 disk mounts, WireGuard VPN, and snapshot/fork — all driving the authed `createos` CLI. |
| [**pi-extension**](./packages/pi-extension) | Pi coding agent extension that transparently routes all built-in commands (bash, read, write, edit, ls, find, grep) to a remote CreateOS Sandbox, plus 40 additional tools for sandbox lifecycle, configuration, port tunnels, file sync, private networks, persistent disks, custom image templates, remote editors, and device VPN — 47 tools total. |
| [**@createos/opencode**](./packages/opencode-plugin) | OpenCode plugin with 33 sandbox tools (`sandbox_exec`, `sandbox_push`, `sandbox_pull`, networks, disks, VPN, sync) and system prompt injection for sandbox-first workflows. |

## Claude Code — commands at a glance

Expand All @@ -80,7 +92,7 @@ Full flags, networking guide, and heavy-build tips live in the [**Claude Code Pl

## Pi — commands at a glance

All built-in tools (bash, read, write, edit, ls, find, grep) transparently route to the sandbox — plus 26 additional tools for lifecycle, networking, disks, and device VPN (33 tools total).
All built-in tools (bash, read, write, edit, ls, find, grep) transparently route to the sandbox — plus 40 additional tools for lifecycle, networking, disks, image templates, remote editors, and device VPN (47 tools total).

| Command | What |
| -------------------------- | ------------------------------------- |
Expand All @@ -106,21 +118,35 @@ All built-in tools (bash, read, write, edit, ls, find, grep) transparently route

Full tool inventory lives in the [**Pi Extension README**](./packages/pi-extension/README.md).

## OpenCode — tools at a glance (40)

| Category | Tools |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Execute & Files** | `sandbox_exec`, `sandbox_pull`, `sandbox_push` |
| **Lifecycle** | `sandbox_create`, `sandbox_list`, `sandbox_info`, `sandbox_pause`, `sandbox_resume`, `sandbox_fork`, `sandbox_destroy` |
| **Config** | `sandbox_ingress`, `sandbox_firewall`, `sandbox_bandwidth`, `sandbox_shapes`, `sandbox_images` |
| **Ports & Sync** | `sandbox_preview_url`, `sandbox_tunnel`, `sandbox_sync` |
| **Networks** | `sandbox_network_create/list/show/attach/detach/delete` |
| **Disks** | `sandbox_disk_create/list/show/delete/attach/detach` |
| **Device VPN** | `sandbox_device_register/status/attach/detach`, `sandbox_vpn_up` |

Full reference in [opencode-plugin/README.md](./packages/opencode-plugin/README.md).

## Install

**From GitHub (recommended):**

```
/plugin marketplace add NodeOps-app/createos-claude-plugins
/plugin install claude-code-plugin@createos
/plugin install @createos/claude-code@createos
```

**From a local checkout:**

```
git clone https://github.com/NodeOps-app/createos-claude-plugins
/plugin marketplace add /path/to/createos-claude-plugins
/plugin install claude-code-plugin@createos
/plugin install @createos/claude-code@createos
```

**Dev (instant, no install):**
Expand Down Expand Up @@ -157,9 +183,15 @@ createos-claude-plugins/ # marketplace root
│ │ ├─ hooks/ # SessionStart driver-path + PreToolUse offload-hint
│ │ ├─ scripts/cos # the CLI driver
│ │ └─ README.md
│ └─ pi-extension/ # Pi extension (TypeScript)
│ ├─ index.ts # extension entry point
│ ├─ src/ # tools, CLI wrappers, ops
│ ├─ pi-extension/ # Pi extension (TypeScript)
│ │ ├─ index.ts # extension entry point
│ │ ├─ src/ # tools, CLI wrappers, ops
│ │ └─ README.md
│ └─ opencode-plugin/ # OpenCode plugin
│ ├─ index.ts # plugin entry (CreateOSPlugin)
│ ├─ src/cli.ts # createos CLI wrappers
│ ├─ src/tools.ts # 33 tool definitions
│ ├─ src/util.ts # shellQuote, shortId, joinPath
│ └─ README.md
├─ apps/ # (future starter templates)
├─ docs/
Expand All @@ -169,11 +201,13 @@ createos-claude-plugins/ # marketplace root

## Contributing

Issues and PRs welcome. The plugin is a thin Claude Code surface over the [`createos`](https://createos.sh) CLI — most command logic lives in [`claude-code-plugin/scripts/cos`](./packages/claude-code-plugin/scripts/cos). Keep the slash-command, skill, and CLI surfaces aligned.
Issues and PRs welcome. All three plugins are thin surfaces over the [`createos`](https://createos.sh) CLI — keep the command surfaces aligned.

## Links

- 🌐 [createos.sh](https://createos.sh) — CreateOS platform
- 📖 [Claude Code plugins](https://docs.claude.com/en/docs/claude-code) — how plugins & marketplaces work
- 📦 [Claude Code Plugin README](./packages/claude-code-plugin/README.md) — full command & flag reference
- 🔧 [Pi Extension README](./packages/pi-extension/README.md) — Pi extension setup & tool inventory
- [createos.sh](https://createos.sh) — CreateOS platform
- [Claude Code plugins](https://docs.claude.com/en/docs/claude-code) — how plugins & marketplaces work
- [OpenCode plugins](https://opencode.ai/docs/plugins/) — OpenCode plugin docs
- [Claude Code plugin README](./packages/claude-code-plugin/README.md)
- [Pi extension README](./packages/pi-extension/README.md)
- [OpenCode plugin README](./packages/opencode-plugin/README.md)
Loading