Rust crate architecture
Condukt is a workspace of focused crates. Applications can depend on the narrowest layer that matches the host they are building.
Foundation crates#
| Crate | Responsibility |
|---|---|
condukt-protocol |
Provider-neutral messages, roles, and tool-call identifiers. |
condukt-inference |
Provider and tool-definition traits shared by session implementations. |
condukt-session |
Conversation history, host-driven state transitions, and the synchronous native agent loop. |
The host-driven HostSession is the portable core used when inference and tools execute outside Rust. It produces a completion request, accepts one assistant response, requests tool outputs when needed, and validates every transition.
Feature crates#
| Crate | Responsibility |
|---|---|
condukt-tools |
Native file and shell tools plus their model-visible definitions. |
condukt-openrouter |
OpenRouter transport and credential handling for native hosts. |
condukt-wasm |
WebAssembly bindings around the host-driven session. |
These crates add capabilities without making them assumptions of the portable session. A browser host can use condukt-wasm without linking native file or shell tools.
Application crate#
The condukt crate assembles the terminal coding agent, one-shot execution, provider sign-in, workspace tools, rich terminal presentation, and Agent Client Protocol integration.
Use it as an architectural example when building another application, but keep host-specific policy in your application layer.
Choose a starting point#
- Use
@tuist/conduktand the browser quickstart for a web application. - Use
condukt_session::HostSessionand the host interface for a custom asynchronous host. - Use
condukt_session::Sessionwith anInferenceProviderandToolDispatcherfor a synchronous native host.
Review how Condukt works before coupling a new host to a lower-level crate.