Configuration

AgentFlow stores settings in a JSON file and automatically detects your Claude CLI installation. Here's how to configure every aspect of the app.

App Settings

Settings are persisted to {APP_DATA_DIR}/settings.json and loaded on startup.

PropertyTypeDescription
claude_cli_pathstring | nullAbsolute path to the Claude Code CLI binary. Auto-detected if null.
themestring"dark" — the only supported theme. Light theme has been removed.
experience_modestring"simple" for essential features only, or "advanced" for the full feature set including parallel, loops, and advanced configuration.
notificationsbooleanEnable/disable desktop notifications for pipeline events.
Default settings.json
json
{
  "claude_cli_path": null,
  "theme": "dark",
  "experience_mode": "simple",
  "notifications": true
}

Setup Wizard

When you launch AgentFlow for the first time (or when no project is configured), a setup wizard guides you through initial configuration:

  1. Select your project directory (git repository)
  2. Auto-detect and verify the Claude CLI installation
  3. Choose your experience mode (Simple or Advanced)
  4. Create the .claude/ directory structure if it doesn't exist

Tip

After completing the wizard, a hint overlay highlights key UI areas to help you get started quickly. You can dismiss it at any time.

Experience Modes

AgentFlow offers two experience modes to match your comfort level:

Simple Mode

Essential features only. Hides advanced node types (Parallel, Loop) and complex configuration options. Ideal for getting started or for straightforward linear pipelines.

Advanced Mode

Full feature set including Parallel nodes, Loop nodes, advanced retry/timeout configuration, per-node model selection, and all pipeline settings. For power users building complex workflows.

Info

You can switch between modes at any time in Settings → Experience Mode. Pipelines created in Advanced mode can still be run in Simple mode — the mode only affects which UI options are visible.

Claude CLI Auto-Detection

When claude_cli_path is null, AgentFlow searches the following locations in order, returning the first match:

PrioritySourcePath
1System PATHwhich claude
2NVM~/.nvm/versions/node/*/bin/claude
3fnm~/.local/share/fnm/node-versions/*/installation/bin/claude
4Bun~/.bun/bin/claude
5npm global~/.npm-global/bin/claude
6Claude Desktop~/.claude/local/claude
7Cargo~/.cargo/bin/claude
8Local bin~/.local/bin/claude
9Homebrew/opt/homebrew/bin/claude
10Linuxbrew/home/linuxbrew/.linuxbrew/bin/claude
11System/usr/local/bin/claude
12System/usr/bin/claude
13Snap/snap/bin/claude

Manual override

If auto-detection picks the wrong binary, set claude_cli_path explicitly in Settings → Claude CLI Path within the app.

Tauri Configuration

The desktop app is configured via tauri.conf.json in the project root.

PropertyTypeDescription
productNamestring"AgentFlow"
identifierstring"com.agentflow.app"
window.width / heightnumberDefault: 1280 x 800. Min: 900 x 600.
window.resizablebooleantrue — window can be resized freely.
bundle.targetsstring"all" — builds .deb, .dmg, .msi, .AppImage, etc.
tauri.conf.json (key fields)
json
{
  "productName": "AgentFlow",
  "identifier": "com.agentflow.app",
  "build": {
    "devUrl": "http://localhost:1420",
    "frontendDist": "../dist"
  },
  "app": {
    "windows": [
      {
        "title": "AgentFlow",
        "width": 1280,
        "height": 800,
        "minWidth": 900,
        "minHeight": 600,
        "resizable": true
      }
    ]
  },
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/32x32.png",
      "icons/128x128.png",
      "icons/icon.icns",
      "icons/icon.ico"
    ]
  }
}

Vite Configuration

Frontend build is managed by Vite 7 with React and Tailwind plugins.

vite.config.ts
typescript
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite";

const host = process.env.TAURI_DEV_HOST;

export default defineConfig({
  plugins: [react(), tailwindcss()],
  clearScreen: false,
  server: {
    port: 1420,
    strictPort: true,
    host: host || false,
    hmr: host
      ? { protocol: "ws", host, port: 1421 }
      : undefined,
  },
});

Project Setup

AgentFlow works with any git repository. It looks for a .claude/ directory containing agents and pipelines.

Initialize a project
bash
# AgentFlow creates .claude/ if it doesn't exist when you
# initialize a project from the app, or you can do it manually:

mkdir -p .claude/agents .claude/pipelines

Project Detection

When launched, AgentFlow attempts to auto-detect your project by walking parent directories from the current working directory looking for a .claude/ directory. You can also select a project manually or choose from recent projects.

Project Scanning

When a project is selected, AgentFlow scans it and reports:

  • Whether .claude/ exists
  • Number of agent files found
  • Number of pipeline files found
  • Whether .mcp.json exists (for MCP tool validation)

File Watching

AgentFlow watches the .claude/agents/ and .claude/pipelines/ directories for filesystem changes using the notify crate.

  • Changes are debounced at 500ms to prevent rapid reloads
  • A file-changed event is emitted to the frontend with the change kind and affected paths
  • Agent and pipeline lists auto-refresh when teammates push changes via git

Environment Variables

PropertyTypeDescription
TAURI_DEV_HOSTstringDev only. Sets the Vite HMR host for remote development.
HOMEstringUsed for Claude CLI detection paths (~/.nvm, ~/.bun, etc.).
NVM_DIRstringDefaults to ~/.nvm. Used for NVM-based CLI detection.

Info

AgentFlow does not require any environment variables for runtime operation. All configuration is stored in the settings JSON file and managed through the app UI.