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
ApiClientimplementation 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
ToolExecutorimplementation 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_waitpoll 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— wrapsSecretaryToolExecutorand firesTuiEvents 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).