Build with the Conflux harness

Create projects and run Conflux’s own Rust coding agent in your terminal or console.

v0.3.0 · Updated November 2, 2026
On this page

One Rust core, two ways to work

The native Conflux harness owns the task loop, local tools and approvals. Use it directly in a terminal or through Projects in the console. It does not launch Codex, Claude Code or OpenCode. The gateway still handles provider selection, account limits and failover.

Conflux Projects with synthetic task data, a plan and actual Rust tool results
Conflux Projects with synthetic task data, a plan and actual Rust tool results
Conflux Projects with synthetic task data, a plan and actual Rust tool results

Use browser zoom for details.

Create your first project

From the Conflux source checkout, use Rust 1.99.1 or newer. Start your gateway, add a tool-capable route, and issue an owned gateway key. Build the native binary:

Build and create
cargo build --release --locked -p conflux-harness -j 2
target/release/conflux init ./my-project

Set CONFLUX_API_KEY privately in your terminal or secret manager. It must be a gateway key, not an upstream provider key. The default API is http://127.0.0.1:3000/v1. Use CONFLUX_BASE_URL or --base-url for a different endpoint; remote endpoints require HTTPS.

Start the agent
target/release/conflux chat \
  --project ./my-project \
  --model conflux/code \
  --effort high \
  --save

Describe a change and how it should be verified. Ask mode pauses before every file change. Add --allow-shell at startup if you want to approve commands, including tests. Each command still needs an individual decision.

Use Projects in the console

Run the worker on the same Linux host as the console. Give both processes the same private CONFLUX_HARNESS_TOKEN, a randomly generated secret of at least 32 characters. It is a worker credential, separate from your gateway API key.

Start the worker
export CONFLUX_BASE_URL=http://127.0.0.1:3000/v1
# Supply CONFLUX_HARNESS_TOKEN privately.
target/release/conflux serve --root /absolute/path/to/projects
Connect the console
export CONFLUX_HARNESS_ORIGIN=http://127.0.0.1:4180
# Supply the same CONFLUX_HARNESS_TOKEN to the console process.
# Restart that console to load its new environment.
  • Open Build → Projects → New project and give it a name.
  • Choose the model, reasoning effort and Plan or Build mode.
  • Enter a gateway key assigned to your own account. IP-allowlisted keys are not supported for background tasks.
  • Describe the task. Enable encrypted history only if you want to save it.
  • Review each proposed edit or command. Open Files to inspect the result.

Reasoning, permissions and limits

Scroll horizontally to compare all columns on small screens.
ControlBehavior
EffortInherit, Off, Low, Medium, High or Max. Models differ: unsupported native effort becomes a prompt preference; saved gateway model presets may override it.
PlanEnforced read-only inspection and planning. Switch to Build for an implementation follow-up.
AskApprove every file change. Default for new tasks.
Allow project editsFile tools can edit ordinary project files automatically. Shell still asks each time.
Request/output/context limitsDefault 24 model requests, 4096 output tokens per request and 131072 context bytes. Reaching a limit stops without silently trimming history.
Observed-token stopOptional limit based on reported usage. It may overshoot by one request; it is not a provider billing cap. Use a gateway-key quota for admission controls.

File tools reject absolute paths, parent traversal, symlinks, hardlinks and private/generated locations. Commands are a different boundary: --allow-shell enables host execution as the worker’s OS user. They are not sandboxed. Console command execution is restricted to administrators, with an approval for every command.

Root AGENTS.md loads at task creation. An optional local skill name loads .agents/skills/NAME/SKILL.md. Instructions are bounded to 32 KiB each; this is not a plugin marketplace or automatic script runner.

Resume or forget a task

Inside an interactive chat, use /model ID, /effort high, /mode plan or build, /permissions ask or edit, and /status. /help lists the controls. A resumed task accepts --prompt and model/effort/mode/permission overrides for its next turn.

Saved sessions
target/release/conflux sessions --project ./my-project
target/release/conflux resume SESSION_ID --project ./my-project
target/release/conflux forget SESSION_ID --project ./my-project

--save opts into encrypted history under PROJECT/.conflux. Keep this private directory out of Git. It contains the session encryption key, so someone with access to both files and key can decrypt the history. Model API keys are never saved with a project.

Tasks without --save remain in memory. Forget removes history and resume state; project edits remain. One active run is allowed per project. If a process dies during an action, recovery marks it uncertain and does not replay it. Inspect the files before continuing.

What the preview does not include

  • Token-by-token streaming: the current harness processes complete model responses and reports tool checkpoints.
  • An OS sandbox, built-in browser, MCP runtime, LSP or desktop installer.
  • Delegated subagents, scheduled goals, remote bots, Git rollback or automatic context compaction.
  • Access to hidden reasoning or equivalent behavior across every model/provider.
  • A guarantee of uninterrupted work after every eligible account runs out of capacity.

The gateway’s existing protocol and account limits also apply. The native harness is implemented and under review; it is not a claim of full Z Code feature parity.