Skip to main content

Building and Troubleshooting

Achilles is a technical preview and fully open source, so building it yourself is a supported path, not an escape hatch. This page collects prerequisites, build commands, and the troubleshooting drill.

Installers

Download desktop installers at achilles.sh or from GitHub Releases. The floating stable tag always tracks the latest build:

PlatformArtifact
Windows x64AchillesSetup.exe (CUDA variant: AchillesSetup-cuda.exe)
macOS Apple SiliconAchilles-arm64.dmg
macOS IntelAchilles-intel.dmg
Linux.deb, .rpm, .flatpak

Installers are built on GitHub-hosted runners and are unsigned. Windows SmartScreen and macOS Gatekeeper will warn, which is expected for a technical preview. If you would rather not bypass those prompts, build from source (below) or configure your own signing.

Build from source

Prerequisites

  • Rust (see the rust-version key in the root Cargo.toml)
  • C/C++ toolchain (MSVC Build Tools on Windows)
  • Node.js + pnpm (Hermit can provide these)
  • Git

Quick path: start-desktop

From the repo root (Git Bash on Windows):

./start-desktop.sh

Or double-click start-desktop.cmd on Windows. The first run compiles the CLI, which takes several minutes. Later runs reuse the built binary unless you pass --rebuild. --help lists --debug, --skip-build, and --full.

When the window opens: pick a model if onboarding asks, then Findings - Choose workspace - pick a folder (or examples/achilles-scan-fixture) - Scan.

Hermit and the CLI

Hermit (recommended) activates the pinned toolchains:

source ./bin/activate-hermit
cargo build --release

Just recipes

With just installed:

just run-ui        # release CLI, then Electron
just run-ui-only # UI only, CLI binary already in place

Desktop directly

cd ui/desktop
pnpm install
pnpm run start-gui

The desktop shell launches the bundled CLI binary over ACP.

Python-oriented install guidance lives in requirement-guidance.html in the repo root.

Tests

The repo's own verification commands, and a good check for your environment after building:

cargo test
cargo fmt
cargo clippy --all-targets -- -D warnings
cd ui/desktop && pnpm run typecheck && pnpm test

App will not start

Check these before filing an issue:

  1. Confirm the CLI binary was built: cargo build --release.
  2. On Windows, use Git Bash for Hermit / start-desktop.sh, and make sure MSVC Build Tools are installed for Rust.
  3. Your pnpm version must match the engines field in ui/desktop/package.json.

Keychain and secrets

If configure cannot store API keys, your OS keyring is probably unavailable (headless machines, some Linux desktops). Set provider keys as environment variables instead - for example OPENAI_API_KEY, ANTHROPIC_API_KEY - and run configure again. To keep two environments isolated while testing, use the app's config-root environment variable to redirect the config directory.

Diagnostics

In an active chat, use the diagnostics control in the toolbar. It downloads a JSON bundle (diagnostics_<session_id>.json) containing OS, app version, enabled extensions, provider/model, and recent logs.

CLI equivalent:

achilles session diagnostics --session-id <session_id>

Report a bug

Use Settings - App - Help and feedback, or the diagnostics' file-an-issue shortcut. When opening an issue in kineticquant/achilles-harness, include:

  • OS and version
  • Achilles version
  • Enabled extensions and provider/model
  • The diagnostics JSON bundle

Command-line quickstart

Skip the desktop entirely on a compute box:

git clone https://github.com/kineticquant/achilles-harness
cd achilles-harness
./start-desktop.sh --skip-build # or: cargo build --release
./target/release/achilles appsec scan --path examples/achilles-scan-fixture
./target/release/achilles appsec query --path examples/achilles-scan-fixture

Then wire the findings rail or MCP tools into your editor as described on the MCP, Skills, and Recipes page.