Docs
Installation

Installation

Jan Agent is built from source using Rust's cargo toolchain.

Prerequisites

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.git
cd 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:

CrateDescription
jan-cliCLI binary — serve, launch, threads, models, agent commands
jan-agent-coreReAct agent loop with tool dispatch
jan-agent-sandboxWASM-based tool execution sandbox
jan-llamacppLlamaCPP model serving plugin
jan-dataData folder resolution, model discovery, HuggingFace downloads
jan-utilsShared utilities (network, path, system)

Data folder

Jan Agent reads from the same data folder as Jan Desktop. The location is determined by:

  1. The data_folder field in settings.json (in your platform's app data directory)
  2. Falls back to <platform_data_dir>/Jan/data

The data folder contains:

  • llamacpp/backends/ — Inference backend binaries
  • llamacpp/models/ — Downloaded GGUF model files
  • threads/ — Conversation history

Set the JAN_APP_NAME environment variable to change the app name used when locating the config directory (defaults to Jan).