An open API service indexing awesome lists of open source software.

https://github.com/hoveychen/claw-workspace

Self host docker container to work with agent remotely.
https://github.com/hoveychen/claw-workspace

claude-code distributed paas-services vscode

Last synced: 3 months ago
JSON representation

Self host docker container to work with agent remotely.

Awesome Lists containing this project

README

          


Claw Workspace

Run multiple Claude Code agents across distributed machines, with centralized account management and task dispatch.

## Why Claw Workspace?

If you're a Claude Code user who wants to scale beyond a single machine -- running multiple agents on different servers, sharing Claude accounts across a team, or dispatching tasks to a fleet of agents -- Claw Workspace handles the hard parts:

- **Account Pooling** -- Add multiple Claude accounts (Pro/Max) and let the system automatically load-balance across them. When one account hits rate limits, agents seamlessly rotate to another.
- **Distributed Agents** -- Deploy agent containers on any machine (local, cloud, behind NAT). Each agent gets a full VS Code + Claude Code environment accessible via browser.
- **Task Dispatch** -- Send tasks to agents programmatically or from the hub's own Claude Code environment. The hub's master agent can delegate subtasks to remote agents automatically.
- **Shared Filesystem** -- Built-in JuiceFS support gives all agents access to a shared filesystem backed by MinIO + Redis.
- **Web Dashboard** -- Monitor accounts, agents, tasks, and rate limits from a single admin UI.

## Architecture

![Architecture Overview](docs/images/architecture-overview.png)

## Quick Start

### Prerequisites

- Docker and Docker Compose
- At least one Claude account with an active Pro or Max subscription

### 1. Configure Environment

```bash
git clone https://github.com/hoveychen/claw-workspace.git
cd claw-workspace

# Copy example env files
cp .env.hub.example .env.hub
cp .env.agent.example .env.agent
```

Edit `.env.hub` with your settings:

```bash
# Generate an encryption key for storing OAuth tokens
HUB_ENCRYPTION_KEY=$(openssl rand -hex 32)

# Choose passwords
HUB_ADMIN_PASSWORD=your-admin-password
AGENT_SECRET=your-shared-secret

# Single secret for Redis + MinIO (JuiceFS shared filesystem)
JUICEFS_SECRET=your-storage-password

# Your email (for hub's built-in agent)
HUB_ADMIN_EMAIL=you@example.com
```

### 2. Start the Hub

```bash
docker compose -f docker-compose.hub.yml --env-file .env.hub up -d
```

This starts the hub with Redis and MinIO (for shared filesystem). The hub is accessible at `http://localhost:9090`.

### 3. Add a Claude Account

Open the hub dashboard at `http://localhost:9090` and log in with your admin password. Go to **Accounts** and click **Add Account** -- this starts an OAuth flow that opens your browser to authorize with Claude. Once authorized, the hub stores and manages your tokens automatically -- you never need to log in again on each agent.

### 4. Deploy Agents

On any machine that can reach the hub:

```bash
docker compose -f docker-compose.agent-cpu.yml --env-file .env.agent up -d
```

Edit `.env.agent` to point to your hub:

```bash
HUB_HOST=your-hub-host # URLs are derived automatically
AGENT_SECRET=your-shared-secret # must match the hub
JUICEFS_SECRET=your-storage-password # must match the hub
AGENT_NAME=agent-1
OWNER_EMAIL=you@example.com
```

The agent registers with the hub, receives Claude credentials automatically, and is ready to use. Access its VS Code environment at `http://agent-host:8081`.

#### GPU Support

If your agent needs NVIDIA GPU access (e.g., for CUDA workloads), add the GPU override file:

```bash
# Use GPU 0
docker compose -f docker-compose.agent-gpu.yml --env-file .env.agent up -d

# Use a different GPU
GPU_DEVICE_ID=2 docker compose -f docker-compose.agent-gpu.yml --env-file .env.agent up -d
```

Requires [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) on the host. See [Configuration](https://hoveychen.github.io/claw-workspace/configuration/) for details.

### 5. Use the Fleet

The hub dashboard at `http://localhost:9090` gives you full control:

- **Agents** -- Monitor status, open VS Code in browser, reassign accounts
- **Accounts** -- View health, rate limit utilization, enable/disable accounts
- **Tasks** -- Dispatch tasks to agents, view output and cost, stop or resume
- **Sessions** -- Start multi-turn interactive sessions with agents
- **Files** -- Browse shared datasets and results across all agents

You can also use the hub's built-in Claude Code environment (at `http://localhost:8080`) which can automatically delegate work to remote agents via `fleet-cli`.

## Adding More Accounts

For better throughput, add multiple Claude accounts from the **Accounts** page in the dashboard. The hub automatically load-balances across accounts and rotates when one hits rate limits.

## Documentation

Full documentation: [https://hoveychen.github.io/claw-workspace/](https://hoveychen.github.io/claw-workspace/)

- [Getting Started](https://hoveychen.github.io/claw-workspace/getting-started/) -- Detailed setup guide
- [Configuration](https://hoveychen.github.io/claw-workspace/configuration/) -- All environment variables
- [Architecture](https://hoveychen.github.io/claw-workspace/architecture/) -- How it works under the hood

## Building from Source

If you prefer to build locally instead of using pre-built images:

```bash
make build # Build all Go binaries
make docker # Build Docker images locally
make test # Run tests
```

## License

Apache License 2.0. See [LICENSE](LICENSE).