Build with the Conflux harness
Create projects and run Conflux’s own Rust coding agent in your terminal or console.
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.
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:
cargo build --release --locked -p conflux-harness -j 2
target/release/conflux init ./my-projectSet 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.
target/release/conflux chat \
--project ./my-project \
--model conflux/code \
--effort high \
--saveDescribe 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.
export CONFLUX_BASE_URL=http://127.0.0.1:3000/v1
# Supply CONFLUX_HARNESS_TOKEN privately.
target/release/conflux serve --root /absolute/path/to/projectsexport 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
| Control | Behavior |
|---|---|
| Effort | Inherit, Off, Low, Medium, High or Max. Models differ: unsupported native effort becomes a prompt preference; saved gateway model presets may override it. |
| Plan | Enforced read-only inspection and planning. Switch to Build for an implementation follow-up. |
| Ask | Approve every file change. Default for new tasks. |
| Allow project edits | File tools can edit ordinary project files automatically. Shell still asks each time. |
| Request/output/context limits | Default 24 model requests, 4096 output tokens per request and 131072 context bytes. Reaching a limit stops without silently trimming history. |
| Observed-token stop | Optional 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.
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.