Installation
Jan Agent is built from source using Rust's cargo toolchain.
Prerequisites
- Rust 1.77.2 or later — install via rustup (opens in a new tab)
- Jan Desktop (optional) — for pre-installed models and inference backends
Jan Agent shares the same data folder as Jan Desktop. If you already have Jan Desktop installed, your models and backends are automatically available to Jan Agent.
Build from source
Clone the repository
git clone https://github.com/janhq/jan-agent.gitcd jan-agent
Build the CLI
cargo build --release -p jan-cli
The binary is produced at target/release/jan.
Install (optional)
Copy the binary to a directory in your $PATH:
cp target/release/jan ~/.local/bin/jan
Workspace crates
The workspace contains 6 crates:
| Crate | Description |
|---|---|
jan-cli | CLI binary — serve, launch, threads, models, agent commands |
jan-agent-core | ReAct agent loop with tool dispatch |
jan-agent-sandbox | WASM-based tool execution sandbox |
jan-llamacpp | LlamaCPP model serving plugin |
jan-data | Data folder resolution, model discovery, HuggingFace downloads |
jan-utils | Shared utilities (network, path, system) |
Data folder
Jan Agent reads from the same data folder as Jan Desktop. The location is determined by:
- The
data_folderfield insettings.json(in your platform's app data directory) - Falls back to
<platform_data_dir>/Jan/data
The data folder contains:
llamacpp/backends/— Inference backend binariesllamacpp/models/— Downloaded GGUF model filesthreads/— Conversation history
Set the JAN_APP_NAME environment variable to change the app name used when locating the config directory (defaults to Jan).