Skip to main content

Crate claudette

Crate claudette 

Source
Expand description

Claudette — local-first AI personal secretary, powered by Ollama.

This crate bundles the agent-loop/session/compaction/permissions kernel (src/runtime/*.rs) and the Claudette secretary layer (tools, REPL, TUI, Codet sidecar, agents, Telegram bot). Single-crate — no path dependencies.

Runtime modules are mounted at the crate root via #[path = "runtime/..."] attributes so their internal use crate::session::X / use crate::compact::X paths resolve without rewriting.

Re-exports§

pub use api::probe_ollama;
pub use api::resolve_ollama_url;
pub use api::OllamaApiClient;
pub use executor::SecretaryToolExecutor;
pub use memory::default_memory_path;
pub use memory::try_load_memory;
pub use memory::try_load_memory_at;
pub use memory::MAX_MEMORY_CHARS;
pub use prompt::forge_system_prompt;
pub use prompt::secretary_system_prompt;
pub use prompt::secretary_system_prompt_with_memory;
pub use run::default_session_path;
pub use run::run_forge_mission;
pub use run::run_secretary;
pub use run::run_secretary_repl;
pub use run::save_session;
pub use run::save_session_at;
pub use run::try_load_session;
pub use run::try_load_session_at;
pub use run::SessionOptions;
pub use tools::secretary_tools_json;
pub use tools::workspace_startup_diagnostics;
pub use compact::compact_session;
pub use compact::estimate_session_tokens;
pub use compact::CompactionConfig;
pub use conversation::ApiClient;
pub use conversation::ApiRequest;
pub use conversation::AssistantEvent;
pub use conversation::ConversationRuntime;
pub use conversation::RuntimeError;
pub use conversation::ToolError;
pub use conversation::ToolExecutor;
pub use conversation::TurnSummary;
pub use permissions::PermissionMode;
pub use permissions::PermissionOutcome;
pub use permissions::PermissionPolicy;
pub use permissions::PermissionPromptDecision;
pub use permissions::PermissionPrompter;
pub use permissions::PermissionRequest;
pub use prompt_runtime::ProjectContext;
pub use session::ContentBlock;
pub use session::ConversationMessage;
pub use session::MessageRole;
pub use session::Session;
pub use usage::TokenUsage;

Modules§

agents
Multi-agent team for the claudette secretary.
antipatterns
Antipattern prompt overlay — injects “don’t repeat past failures” rules into the forge Coder system prompt.
api
ApiClient implementation that talks to a local Ollama instance.
brain_selector
Sprint 14 — tiered brain fallback.
briefing
Morning-briefing prompt (Phase 3 of the life-agent sprint).
clock
Time abstraction for the scheduler (AD-5 from docs/life_agent.md).
codet
Codet — the code-validator sidecar.
commands
Slash-command dispatcher for the claudette REPL.
compact
config
conversation
cto
CTO chat agent — the strategic layer above the forge fix-loop.
doctor
claudette --doctor — diagnostic probe of every external dependency.
egress
Offline mode — the enforced backing of claudette’s “air-gapped by design” claim. Until now “air-gapped” was a posture: claudette only talks to a local model by default, but nothing stopped a tool (or a prompt-injected model) from reaching the open internet. Offline mode turns that posture into a guarantee.
executor
ToolExecutor implementation that dispatches secretary tools.
firstrun
First-run remediation — when the brain probe fails at startup, offer to fix it instead of dead-ending with an error message.
forge
Forge — dormant plumbing for forge-mode (NL mission → planner → coder → PR).
google_auth
Google OAuth 2.0 for installed / desktop apps — loopback flow.
hooks
hw
Hardware detection — GPU VRAM probing + the VRAM→brain recommendation used by --doctor’s “pick a brain” section and the TUI HW tab.
image_attach
Shared helpers for turning user input into image attachments — used by both the TUI (Alt+V clipboard, bracketed-paste drop) and the REPL (drag-drop path detection on submit).
json
memory
Optional user-supplied “memory file” loader.
missions
Brownfield missions — session-scoped active workspace pointing at a cloned external repo under ~/.claudette/missions/<slug>/.
model_config
Sprint 14 — tiered brain configuration for claudette.
permissions
prompt
System prompt for the claudette secretary agent.
prompt_runtime
recall
Cross-session semantic recall — long-term memory the agent can query across sessions.
run
Top-level entry points — single-shot and REPL.
scheduler
Persistent scheduler (AD-4 from docs/life_agent.md).
secrets
File-backed secret storage with env-var override.
security_review
Opt-in security-review stage for forge-mode.
session
telegram_mode
Telegram bot mode — Claudette as a long-running Telegram bot.
test_runner
Subprocess wrappers for running code validation: syntax checks and unit tests. Sync try_wait poll loop for timeouts plus pytest output parsing.
theme
Colour + emoji theme for the claudette REPL.
tool_groups
On-demand tool group registry.
tools
Tool definitions for the secretary, in Ollama’s native tool-call schema.
transcript
Action transcript + trash — recoverability for destructive operations.
tts
Text-to-speech via Microsoft Edge TTS (free neural voices, no account needed).
tui
Ratatui TUI entry point for Claudette.
tui_events
TUI event types — messages from the worker thread to the render loop, and user inputs from the render loop back to the worker thread.
tui_executor
TuiToolExecutor — wraps SecretaryToolExecutor and fires TuiEvents before and after every tool call so the TUI can show live tool activity.
tui_worker
Worker thread for the TUI.
usage
voice
Voice transcription via whisper.cpp (local STT).