Configuration Reference

This reference documents all configuration options for Praxis components.

Environment Variables

RabbitMQ

VariableDefaultDescription
PRAXIS_RABBITMQ_URLamqp://praxis:praxis@localhost:5672RabbitMQ connection URL

Database (Service)

VariableDefaultDescription
PRAXIS_DATABASE_URL~/.praxis_operations.dbDatabase connection

Formats:

  • postgresql://user:pass@host:5432/dbname - PostgreSQL
  • sqlite:///path/to/file.db - SQLite with URL prefix
  • /path/to/file.db - SQLite (implicit)

See Database Configuration for detailed setup.

Web Component

VariableDefaultDescription
PRAXIS_NODES_DIR(none)Directory containing node binaries for download

Build

VariableEffect
PRAXIS_SKIP_FRONTENDSkip frontend build during cargo build
PRAXIS_NOT_HIDDENDisable hidden desktop for DevTools agents. Defaults to 1 in debug builds (visible for development) and 0 in release builds (hidden for production). Set to 1 to make the browser window visible for debugging.
SKIP_NODE_BUILDDocker build arg. Set to 1 to skip building praxis_node binaries (Linux and Windows cross-compile). Defaults to 0. Significantly speeds up Docker builds when only service/web changes are needed. Usage: SKIP_NODE_BUILD=1 docker compose up --build
CARGO_PROFILEDocker build arg. Cargo build profile to use. Defaults to release (thin LTO, 16 codegen units). Set to release-optimized for fully optimized production builds (full LTO, single codegen unit). Usage: CARGO_PROFILE=release-optimized docker compose up --build

Logging

VariableExampleDescription
RUST_LOGinfoLog level filter
RUST_LOGdebugVerbose logging
RUST_LOGpraxis_node::intercept=debugModule-specific logging

Service Configuration

Service configuration is stored in the database and managed via the web UI.

Application Logging

KeyDefaultDescription
application_logs_enabledfalseEnable centralized application/event logging from service, web, and nodes

When disabled or missing, logging is off by default. The service broadcasts the current setting to nodes and web clients at startup and on registration.

LLM Provider Settings

Access via Settings > LLM Providers in the web UI.

KeyFormatDescription
llm.semantic_ops.provideranthropicProvider for semantic operations
llm.semantic_ops.modelclaude-sonnet-4-20250514Model for semantic operations
llm.semantic_ops.api_key(encrypted)API key for provider
llm.semantic_parser.provideranthropicProvider for semantic parsing
llm.semantic_parser.modelclaude-haiku-4-5-20241022Model for parsing
llm.semantic_parser.api_key(encrypted)API key for provider
llm.traffic_parser.provideranthropicProvider for traffic analysis
llm.traffic_parser.modelclaude-haiku-4-5-20241022Model for traffic analysis
llm.traffic_parser.api_key(encrypted)API key for provider
llm.orchestrator.provideranthropicProvider for Orchestrator
llm.orchestrator.modelclaude-sonnet-4-20250514Model for Orchestrator
llm.orchestrator.api_key(encrypted)API key for provider

Prompt Timeout

KeyDefaultDescription
prompt_timeout_secs600Maximum time in seconds a single agent prompt can run before the agent process is killed. Applies to all sessions unless overridden per-session.

Claude Bridge Settings

Access via Settings > Claude Bridge in the web UI.

KeyDefaultDescription
claude_ccrv1_enabledfalseEnable the CCRv1 (WebSocket) bridge listener
claude_ccrv1_port8586Port for CCRv1 WebSocket connections
claude_ccrv2_enabledfalseEnable the CCRv2 (HTTP+SSE) bridge listener
claude_ccrv2_port8587Port for CCRv2 HTTP connections

The Claude Bridge allows Claude Code to connect directly to the service as a virtual node, without deploying a full Praxis node. See Claude Bridge for protocol details and setup instructions.

MCP Server Settings

Access via Settings > MCP Server in the web UI.

KeyDefaultDescription
mcp_server_enabledfalseEnable the built-in MCP SSE server
mcp_server_port8585Port for the MCP SSE server

The MCP server exposes all Praxis tools via the Model Context Protocol over SSE transport. It is used by the built-in Orchestrator and can also be used by external AI agents. See MCP Server for full details.

Supported Providers

Provider IDNameAPI KeyBase URL
anthropicAnthropicrequiredfixed
openaiOpenAIrequiredfixed (overridable)
geminiGoogle (Gemini)requiredfixed
groqGroqrequiredfixed
cerebrasCerebrasrequiredfixed
mistralMistralrequiredfixed
xaixAIrequiredfixed
nvidiaNVIDIArequiredfixed
fireworksaiFireworks AIrequiredfixed
minimaxMiniMaxrequiredfixed
moonshotMoonshot AIrequiredfixed
openrouterOpenRouterrequiredfixed
ollamaOllama (local)optionaldefaults to http://localhost:11434/v1
customCustom (OpenAI-compatible)optionalrequired

Every model definition can carry an optional base_url field that overrides the provider default. For custom the base URL is required — discovery and inference both fail without it. For ollama the base URL defaults to the local daemon; set it explicitly if you run Ollama remotely or on a non-default port.

Model Reference Format

When specifying models in operations or chains:

provider::model

Examples:

  • anthropic::claude-sonnet-4-20250514
  • openai::gpt-4o
  • google::gemini-1.5-pro
  • groq::llama-3.3-70b-versatile

Node Configuration

Node Commands

Nodes accept configuration commands at runtime:

CommandParameterDescription
SetReportIntervalinterval_secs: u64How often to send information updates

Agent Connector Configuration

Each agent connector may have specific configuration. See individual connector documentation.

Claude Code

  • Config path: ~/.claude.json or ~/.config/claude/config.json
  • MCP servers: ~/.claude/mcp.json
  • Sessions: ~/.claude/projects/

Gemini CLI

  • Config path: ~/.gemini/settings.json
  • Sessions: ~/.gemini/sessions/

M365 Copilot

  • Mode: DevTools (via CDP)
  • Platform: Windows only

Operation Definitions

Operations are defined in JSON and stored in the service database.

JSON Format

{
  "item_type": "operation",
  "name": "find_credentials",
  "short_name": "find_credentials",
  "category": "recon",
  "description": "Search for hardcoded credentials",
  "agent_info": "Security researcher looking for exposed secrets",
  "timeout": 300,
  "operation_prompt": "Search the current directory for files that may contain hardcoded credentials, API keys, passwords, or secrets. List each finding with the file path and context.",
  "mode": "one-shot",
  "agent_iterations": 1,
  "yolo_mode": false,
  "disabled": false
}

Fields

FieldTypeRequiredDescription
namestringYesShort name (used with category)
descriptionstringYesHuman-readable description
categorystringYesCategory for organization
agent_infostringNoContext for the AI agent
timeoutu64YesTimeout in seconds
operation_promptstringYesThe prompt to execute
modestringYesone-shot or agent
agent_iterationsu32NoMax iterations (agent mode)
yolo_modeboolNoAuto-approve actions
model_refstringNoModel override (provider::model)
disabledboolNoDisable the operation

Full Name

Operations are referenced by category::name, e.g., recon::find_credentials.

Chain Definitions

Chains are visual workflows stored in the service database.

Elements

Element TypeProperties
Triggerid, trigger_type
Operationid, operation_name, model_ref, session_group, block_config
Transformid, prompt, model_ref, session_group, block_config
GenericPromptid, prompt, session_group, block_config
Memoryid, mode (store or retrieve), key
Loopid, max_iterations
Terminationid, label

block_config fields (all optional):

FieldTypeDescription
max_runtimeu64Per-element timeout in seconds
yolo_modeboolAuto-approve for this element's session
working_dirstringWorking directory override
require_all_inputsboolWait for all upstream inputs before executing (default: true)

Session Groups

{
  "id": "group-1",
  "color": "#8B5CF6",
  "yolo_mode": true
}

Elements in the same session group share an agent session context.

Connections

{
  "id": "edge-1",
  "from_element": "trigger-1",
  "to_element": "op-1",
  "from_port": 0,
  "to_port": 0,
  "condition": "Always"
}

condition values: Always (default), OnSuccess, OnFailure.

Intercept Rules

Rules for matching and processing intercepted traffic.

Rule Structure

{
  "name": "Capture API Keys",
  "regex_pattern": "Authorization:\\s*Bearer",
  "target_direction": "send",
  "scope": { "type": "all" },
  "enabled": true,
  "summarization_prompt": "Extract and summarize the authentication tokens"
}

Target Direction

ValueDescription
sendMatch outgoing requests
receiveMatch incoming responses
bothMatch both directions

Scope

TypeExampleDescription
all{"type": "all"}All nodes/agents
node{"type": "node", "node_id": "abc123"}Specific node
agent{"type": "agent", "node_id": "abc123", "agent_short_name": "claudecode"}Specific agent

Database Schema

SQLite (Default)

Default location: ~/.praxis_operations.db

Tables:

  • config - Key-value configuration
  • operation_definitions - Semantic operations
  • semantic_operations - Operation executions
  • chain_definitions - Chain workflows
  • chain_executions - Chain runs
  • traffic_log - Intercepted traffic
  • intercept_rules - Traffic rules
  • traffic_matches - Rule matches
  • recon_results - Stored recon data
  • application_logs - Centralized logging table (controlled by application_logs_enabled)

PostgreSQL

For production and multi-instance deployments, use PostgreSQL. See Database Configuration for setup, migration, and tuning.

Default Ports

ServicePortProtocol
Web UI8080HTTP
WebSocket8080WS
MCP SSE Server8585HTTP
Claude Bridge CCRv18586WS
Claude Bridge CCRv28587HTTP
RabbitMQ5672AMQP
RabbitMQ Management15672HTTP
PostgreSQL5432TCP
Proxy (when enabled)DynamicHTTP

CLI Configuration

The Praxis CLI (praxis_cli) stores state and can be configured via command-line options or environment variables.

CLI State File

PlatformPath
Linux/macOS~/.praxis/cli.json
Windows%USERPROFILE%\.praxis\cli.json

Contents:

{
  "client_id": "uuid-generated-on-first-run"
}

CLI Options

OptionEnvironment VariableDefaultDescription
-r, --rabbitmqPRAXIS_RABBITMQ_URLamqp://praxis:praxis@localhost:5672RabbitMQ URL
-t, --timeout-600Connection/command timeout in seconds
-C, --command--Run a single command and exit
--status--Check connection status
--clear--Clear local state

File Locations

Linux

FilePath
Database~/.praxis_operations.db
CLI State~/.praxis/cli.json
CLI Binary~/.praxis/bin/praxis_cli
Claude Config~/.claude.json or ~/.config/claude/config.json
Gemini Config~/.gemini/settings.json

macOS

FilePath
Database~/.praxis_operations.db
CLI State~/.praxis/cli.json
CLI Binary~/.praxis/bin/praxis_cli
Claude Config~/.claude.json or ~/.config/claude/config.json
Gemini Config~/.gemini/settings.json

Windows

FilePath
Database%USERPROFILE%\.praxis_operations.db
CLI State%USERPROFILE%\.praxis\cli.json
CLI Binary%USERPROFILE%\.praxis\bin\praxis_cli.exe
Claude Config%USERPROFILE%\.claude.json
Hosts FileC:\Windows\System32\drivers\etc\hosts