Skip to main content

Crate synaps_cli

Crate synaps_cli 

Source

Modules§

auth
OAuth 2.0 Authorization Code + PKCE flow for Anthropic (Claude Pro/Max).
chain
Chain pointer management — named bookmarks that auto-advance on compaction.
config
core
Core infrastructure — config, session, auth, logging, error types, protocol.
engine
Engine — shared business logic for both TUI and headless modes.
error
events
Event Bus — universal message ingestion for agent sessions.
extensions
Extension system for SynapsCLI.
help
logging
mcp
MCP (Model Context Protocol) integration — JSON-RPC client, tool bridging, lazy loading.
memory
Local-first memory store.
models
Curated list of Claude models known to work with this CLI. Centralized so the settings dropdown, defaults, and subagent hints agree.
pricing
Centralised pricing logic for Anthropic models.
protocol
runtime
session
sidecar
Sidecar plugin support: long-running plugin processes that stream events into the host over a JSONL line protocol.
skills
Skills and plugins subsystem.
toast
Public toast notification primitives for extensions and host UIs.
tools
Tool system — trait, registry, and built-in tool implementations.
tui
Chat TUI binary — event loop, terminal setup, module wiring.
watcher_types

Structs§

AgentConfig
Agent configuration parsed from config.toml
AgentStatusInfo
Runtime info for a single agent (for status display)
CancellationToken
A token which can be used to signal a cancellation request to one or more tasks.
HandoffState
What the agent writes for its next self
Runtime
The core runtime — manages API communication, tool execution, authentication, and streaming for all SynapsCLI binaries (chat, chatui, server, agent, watcher).
Session
SessionInfo
Lightweight info for listing sessions without loading full message history
SessionLimits
SessionStats
Stats tracked per agent session
SynapsConfig
Parsed configuration from the config file.
ToolContext
Context passed to tool execution — composition of channels, capabilities, and limits.
ToolRegistry
Registry of available tools. Maintains a name→tool map and a cached JSON schema array that gets sent to the API. Thread-safe via Arc<RwLock<ToolRegistry>>.

Enums§

AgentEvent
ExitReason
Why an agent session ended
LlmEvent
RuntimeError
SessionEvent
StreamEvent
Top-level stream event — grouped into concern-specific sub-enums.
Value
Represents any valid JSON value.
WatcherCommand
Commands sent from CLI to supervisor
WatcherResponse
Responses from supervisor to CLI

Traits§

Tool
The core trait for all tools. Implement this to add a new tool.

Functions§

epoch_millis
Re-export epoch_millis from agent-core (moved there for the leaf crate split). Current time as Unix epoch milliseconds. Panics only if system clock is before 1970.
epoch_secs
Current time as Unix epoch seconds.
find_session
Find a session by full or partial ID match
find_session_by_name
Find a session by its assigned name (not partial ID). Iterates session headers one file at a time and returns on first match, avoiding a full directory scan when the named session appears early.
flush_stderr
Flush stderr, ignoring errors (pipe closed, etc.)
flush_stdout
Flush stdout, ignoring errors (pipe closed, etc.)
latest_session
Load the most recently updated session
list_recent_sessions
The limit most-recently-modified sessions (by file mtime), most-recent first. Sorts the directory entries by mtime WITHOUT parsing, then reads only the top limit headers — so /sessions is O(limit) reads instead of O(#sessions). mtime is an exact proxy for updated_at (the file is rewritten on every save).
list_sessions
List all sessions, sorted by most recently updated.
load_config
Parse the config file at ~/.synaps-cli/config (or profile variant). Returns default config if file doesn’t exist or can’t be read.
resolve_session
Resolve a query string to a Session. Resolution order:
resolve_system_prompt
Resolve the system prompt from CLI flag, config file, or default. Priority: explicit value > ~/.synaps-cli/system.md > built-in default.
truncate_str
Re-export truncate_str from agent-core. Truncate a string to at most max bytes at a valid UTF-8 boundary.
validate_name
Validate a session or chain name: [a-z0-9-]{1,40}.

Type Aliases§

Result