docs

Contributing

Build and test the agentdesktop Rust workspace and frontends, and find the components that own discovery, enrollment, and fleet management.

agentdesktop is a Rust workspace with React and TypeScript frontends for the desktop app and controller. The controller handles enrollment directly; there is no separate enrollment service.

Local setup and tests

Follow Prepare your build environment to clone the repository and install the toolchains and platform dependencies. From the repository root, run:

make test
make check

make test builds the frontends and runs cargo test --workspace. make check runs Rust formatting and Clippy with warnings denied, then checks all frontend packages.

When changing configuration types, regenerate and verify the checked-in schemas:

make generate-schema
git diff --exit-code -- schema

Develop the web interfaces

Use these development servers when changing frontend code. For normal use, the desktop interface is included in agentdesktop, and agentdesktop-controller serves its embedded fleet UI. Neither quickstart needs a separate frontend process.

First, complete the standalone or controller-managed quickstart so that a daemon or controller is running for the development server to connect to. Install frontend dependencies from the repository root:

cd frontend
pnpm install --frozen-lockfile

For controller UI development, leave the controller running on 127.0.0.1:8080 and start the frontend from frontend/:

pnpm dev:controller

Open http://127.0.0.1:1421. The development server proxies /api requests to the controller on port 8080.

For desktop UI development, run the following command from frontend/ in a separate terminal:

pnpm dev:desktop

The command starts the Tauri desktop app with frontend reloading. Tauri provides the native window and tray integration for the web interface. The app connects to the local device daemon.

Code map

AreaStarting point
Device daemon, discovery, reconciliation, and OIDCcrates/agent/
Desktop app and command-line entry pointcrates/agentdesktop/
Fleet controller, enrollment, storage, and admin APIcrates/controller/
Shared configuration and data modelscrates/core/
Fleet gRPC contractcrates/proto/
Desktop and controller frontendsfrontend/
Local and Kubernetes scenariosexamples/
Controller Helm chartdeploy/helm/agentdesktop-controller/
Generated configuration referenceschema/

Before opening a PR

Keep changes within the owning crate or frontend package. Read the nearest test before changing behavior and add a regression test for an escaped defect.

agentdesktop owns discovery, configuration reconciliation, enrollment, gateway credential delivery, and selected telemetry. Inference-gateway routing and provider policy remain in the configured gateway.