Skip to content

Quick Start

Use the CLI when you want an agent in the terminal. Use the Rust library when you want to embed the runtime in your own application.

Install the CLI

Terminal window
cargo install telos-cli
export TELOS_PROVIDER=deepseek
export TELOS_API_KEY=sk-...

DEEPSEEK_API_KEY also works for the DeepSeek provider. If you run telos interactively without a configured provider, the CLI opens the setup wizard.

Start the full-screen TUI:

Terminal window
telos

Run one prompt and exit:

Terminal window
telos "Review src/lib.rs"

You can keep credentials in a user config file instead of shell env:

~/.config/telos/config.toml
[agent]
provider = "deepseek"
model = "auto"
[env]
DEEPSEEK_API_KEY = "sk-..."

Choose a provider and model explicitly:

Terminal window
telos --provider deepseek --model deepseek-v4-pro "Refactor error handling"

--model auto uses the default routed DeepSeek setup: deepseek-v4-pro for thinking and deepseek-v4-flash for fast execution.

Use separate thinking and fast execution models:

Terminal window
telos --provider deepseek \
--thinking-model deepseek-v4-pro \
--fast-model deepseek-v4-flash \
"Refactor error handling"

Add the Library

Terminal window
cargo add telos_agent

Minimal runtime example:

use telos_agent::{
AgentConfig, AgentSession, DeepSeekConfig, DeepSeekProvider, ToolRegistry,
register_core_tools,
};
# async fn example() -> Result<(), telos_agent::AgentError> {
let provider = DeepSeekProvider::new(DeepSeekConfig::from_env("deepseek-v4-pro")?);
let mut tools = ToolRegistry::new();
register_core_tools(&mut tools);
let mut session = AgentSession::new(AgentConfig::default())?;
let result = session.run_turn(&provider, &tools, "Summarize this project").await?;
println!("{}", result.final_message.text_content());
# Ok(())
# }

The DeepSeek provider reads DEEPSEEK_API_KEY from the environment when created with DeepSeekConfig::from_env.