Coding & DevelopmentπŸ€–claude🌐universal

AgentDesk

AI agent orchestration platform β€” single binary, hot-reloadable policies

Quick Start

Install this Skill

npx skills add itismyfield/AgentDesk
# AgentDesk

> AI agent orchestration platform β€” a single Rust binary that manages teams of AI agents through Discord, with a web dashboard, kanban pipeline, and hot-reloadable policy engine.

AgentDesk lets you run multiple AI agents (Claude Code, Codex, or any CLI-based provider) as a coordinated team. Agents communicate through Discord, execute tasks via tmux sessions, and follow configurable workflows defined in JavaScript policy files.

## Quick Start

### One-Click Install (macOS)

```bash
curl -fsSL https://raw.githubusercontent.com/itismyfield/AgentDesk/main/scripts/install.sh | bash
```

This will:
1. Download the latest release (or build from source if no release is available)
2. Install to `~/.adk/release/`
3. Create `~/.adk/release/config/agentdesk.yaml`
4. Register a launchd service (auto-starts on boot)
5. Open the web dashboard for guided onboarding

Set `AGENTDESK_INSTALL_REPO` or `AGENTDESK_INSTALL_DIR` before running the installer when you need to test a fork or install into a sandboxed runtime root. Non-default install roots get an isolated launchd label and a derived non-8791 loopback port automatically; set `AGENTDESK_LAUNCHD_LABEL` or `AGENTDESK_INSTALL_PORT` only when you need explicit values. The default install root keeps the existing `com.agentdesk.release` label path so the bootstrap remains compatible with the current published release binary.

For a portable operator scaffold before wiring real Discord or connector secrets, run:

```bash
python3 scripts/operator-init-portable.py --root ~/.adk/release
```

The helper writes `config/agentdesk.yaml`, prompt stubs, workspace directories, and `config/launchd.env.example` without embedding machine-specific `/Users/<name>` paths in repository templates. Use `--with-obsidian-stubs` only when you want local placeholder directories for the optional Obsidian connector.

### Windows and Linux Native Runtime

Windows and Linux run natively today, but they use the manual/runtime-first path instead of the macOS `curl | bash` bootstrap.

1. Download the matching release artifact (`agentdesk-linux-<arch>.tar.gz` or `agentdesk-windows-<arch>.zip`) or build from source with `cargo build --release`.
2. Run `agentdesk init` (`agentdesk.exe init` on Windows) to create the runtime under `~/.adk/release` or `%USERPROFILE%\.adk\release`.
3. Start `agentdesk dcserver` directly, or register the generated service path with `systemd --user` on Linux or `nssm` / `sc.exe` on Windows.
4. Verify the host runtime with `agentdesk doctor`. Mutating repairs require explicit flags such as `agentdesk doctor --fix --allow-restart` or `agentdesk doctor --fix --repair-sqlite-cache`.

When tmux is unavailable, provider turns automatically fall back to `ProcessBackend` instead of tmux sessions. That path still posts ADK session heartbeats every 30 seconds, but live child processes cannot be reattached after a `dcserver` restart. After restart, AgentDesk starts a fresh backend process on the next turn and only restores provider-native session IDs when the underlying CLI supports resume.

### Build from Source

```bash
git clone https://github.com/itismyfield/AgentDesk.git
cd AgentDesk
cargo build --release

# Verify the dashboard with the same command CI uses (Node >=22)
./scripts/verify-dashboard.sh

# Initialize
./target/release/agentdesk init
```

#### Shared rustc Cache with `sccache`

AgentDesk intentionally keeps a separate `target/` directory per worktree. Sharing `CARGO_TARGET_DIR` across always-parallel worktrees causes Cargo lock contention, so the supported acceleration path is a shared `sccache` rustc cache instead.

- `.cargo/config.toml` no longer hard-codes `rustc-wrapper`, so bare `cargo build` / `cargo test` / `cargo check` works on every machine regardless of whether `sccache` is installed. No more `RUSTC_WRAPPER=` workaround for agents or subagents.
- for bare Cargo commands, opt in manually with `export RUSTC_WRAPPER=sccache` after installing `sccache`. This uses inherited settings or sccache's own defaults; it does not apply AgentDesk's cache size or idle settings.
- release/deploy scripts and the installer's source-build path call `setup_sccache_env` from `scripts/_defaults.sh` to activate caching when sccache is installed.
- Linux/Windows CI configures sccache through workflow environment settings and the Mozilla action. macOS CI runs only on GitHub-hosted runners and disables sccache.
- the shell helper and POSIX campaign wrapper (`scripts/build_token.py`) default to `SCCACHE_CACHE_SIZE=40G` and `SCCACHE_IDLE_TIMEOUT=0` (no idle exit). Unset or empty values use these defaults; nonempty overrides remain intact. The campaign wrapper skips activation entirely when `RUSTC_WRAPPER` or `CARGO_BUILD_RUSTC_WRAPPER` is already present, even empty, so a manually configured wrapper does not receive these defaults.

The 40G limit allows up to 30G more local disk use than the previous limit; it does not preallocate that space. New environment settings do not rec

... (truncated)
Repository
9stars
5forks
View on GitHub
Details
DiscoveredOct 14, 2026
Last UpdatedOct 14, 2026
Quality Score
41/100