Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/cedricziel_assistant.json
T

1 line
193 KiB
JSON

{"repo": "cedricziel/assistant", "files": {"config.toml": {"d79ef5e4890e835aba4314e52f2b7034257a75ce": {"t": 1785746800.8071163, "n": 12493, "h": "800bbba039e357bd", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\", \"openai\", \"openrouter\", \"moonshot\".\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── OpenRouter (300+ models) ──────────────────────────────────────────────────\n# OpenRouter provides a unified API gateway for 300+ models from Anthropic,\n# OpenAI, Meta, Google, Mistral, and many more. Uses the OpenAI Chat\n# Completions wire format.\n#\n# [llm]\n# provider = \"openrouter\"\n# model = \"anthropic/claude-sonnet-4-20250514\" # any OpenRouter model slug\n# api_key = \"sk-or-...\" # or set OPENROUTER_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# [llm.openrouter]\n# referer = \"https://my-app.example.com\" # HTTP-Referer header (OpenRouter TOS)\n# title = \"My App\" # X-Title header (dashboard display)\n# max_tokens = 8192 # max completion tokens per response\n#\n# Browse models at: https://openrouter.ai/models\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.6\" # or kimi-k2.6-thinking, kimi-k2.5, kimi-latest\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n# ── Transcription (speech-to-text) ────────────────────────────────────────────\n# Providers: \"whisper\" (OpenAI), \"ollama\" (local), \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [transcription]\n# provider = \"whisper\"\n# model = \"whisper-1\" # provider-specific default if omitted\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# # base_url = \"https://api.openai.com/v1\"\n# # language = \"en\" # optional BCP-47 language hint\n\n# ── Text-to-speech (TTS) ─────────────────────────────────────────────────────\n# Providers: \"openai\", \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [tts]\n# provider = \"deepgram\"\n# model = \"aura-2-thalia-en\" # provider-specific default if omitted\n# # voice = \"nova\" # voice name (OpenAI); ignored by Deepgram auto-detect\n# # api_key = \"sk-...\" # or set DEEPGRAM_API_KEY / OPENAI_API_KEY env var\n# # base_url = \"https://api.deepgram.com/v1\"\n#\n# Per-language voice overrides (Deepgram only).\n# When no explicit voice is set, Deepgram auto-detects the language of each\n# TTS request and selects a matching Aura 2 voice. Override defaults here:\n#\n# [tts.voices]\n# en = \"aura-2-thalia-en\" # English (default)\n# de = \"aura-2-julius-de\" # German (default)\n# es = \"aura-2-lucia-es\" # Spanish (default)\n# fr = \"aura-2-chloe-fr\" # French (default)\n\n# ── Autonomous Learning ───────────────────────────────────────────────────────\n# The agent creates skills from complex tasks and periodically improves them.\n[learning]\nenabled = true # master switch (default: true)\nauto_create_skills = true # generate skills from novel tasks\nauto_apply_refinements = true # apply improvements without /review\nmin_tool_calls_for_skill = 3 # minimum tool calls to consider skill creation\nmin_executions_for_analysis = 10 # minimum traces before self-analysis\nimprovement_cron = \"0 */6 * * *\" # run improvement cycle every 6 hours\nerror_rate_threshold = 0.2 # trigger improvement above 20% error rate\nrevert_window = 5 # executions to evaluate after refinement\nrevert_regression_threshold = 0.1 # revert if error rate increases by >10pp\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "a59bb43bf112e216057dc0393a5f6b27dd410c3c": {"t": 1785767752.8979146, "n": 12493, "h": "800bbba039e357bd", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\", \"openai\", \"openrouter\", \"moonshot\".\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── OpenRouter (300+ models) ──────────────────────────────────────────────────\n# OpenRouter provides a unified API gateway for 300+ models from Anthropic,\n# OpenAI, Meta, Google, Mistral, and many more. Uses the OpenAI Chat\n# Completions wire format.\n#\n# [llm]\n# provider = \"openrouter\"\n# model = \"anthropic/claude-sonnet-4-20250514\" # any OpenRouter model slug\n# api_key = \"sk-or-...\" # or set OPENROUTER_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# [llm.openrouter]\n# referer = \"https://my-app.example.com\" # HTTP-Referer header (OpenRouter TOS)\n# title = \"My App\" # X-Title header (dashboard display)\n# max_tokens = 8192 # max completion tokens per response\n#\n# Browse models at: https://openrouter.ai/models\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.6\" # or kimi-k2.6-thinking, kimi-k2.5, kimi-latest\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n# ── Transcription (speech-to-text) ────────────────────────────────────────────\n# Providers: \"whisper\" (OpenAI), \"ollama\" (local), \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [transcription]\n# provider = \"whisper\"\n# model = \"whisper-1\" # provider-specific default if omitted\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# # base_url = \"https://api.openai.com/v1\"\n# # language = \"en\" # optional BCP-47 language hint\n\n# ── Text-to-speech (TTS) ─────────────────────────────────────────────────────\n# Providers: \"openai\", \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [tts]\n# provider = \"deepgram\"\n# model = \"aura-2-thalia-en\" # provider-specific default if omitted\n# # voice = \"nova\" # voice name (OpenAI); ignored by Deepgram auto-detect\n# # api_key = \"sk-...\" # or set DEEPGRAM_API_KEY / OPENAI_API_KEY env var\n# # base_url = \"https://api.deepgram.com/v1\"\n#\n# Per-language voice overrides (Deepgram only).\n# When no explicit voice is set, Deepgram auto-detects the language of each\n# TTS request and selects a matching Aura 2 voice. Override defaults here:\n#\n# [tts.voices]\n# en = \"aura-2-thalia-en\" # English (default)\n# de = \"aura-2-julius-de\" # German (default)\n# es = \"aura-2-lucia-es\" # Spanish (default)\n# fr = \"aura-2-chloe-fr\" # French (default)\n\n# ── Autonomous Learning ───────────────────────────────────────────────────────\n# The agent creates skills from complex tasks and periodically improves them.\n[learning]\nenabled = true # master switch (default: true)\nauto_create_skills = true # generate skills from novel tasks\nauto_apply_refinements = true # apply improvements without /review\nmin_tool_calls_for_skill = 3 # minimum tool calls to consider skill creation\nmin_executions_for_analysis = 10 # minimum traces before self-analysis\nimprovement_cron = \"0 */6 * * *\" # run improvement cycle every 6 hours\nerror_rate_threshold = 0.2 # trigger improvement above 20% error rate\nrevert_window = 5 # executions to evaluate after refinement\nrevert_regression_threshold = 0.1 # revert if error rate increases by >10pp\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "f30bf3f50a8a797649b7426dc911e91e8a86b50d": {"t": 1785767754.387481, "n": 11655, "h": "d2143091e4d41ed0", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.6\" # or kimi-k2.6-thinking, kimi-k2.5, kimi-latest\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n# ── Transcription (speech-to-text) ────────────────────────────────────────────\n# Providers: \"whisper\" (OpenAI), \"ollama\" (local), \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [transcription]\n# provider = \"whisper\"\n# model = \"whisper-1\" # provider-specific default if omitted\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# # base_url = \"https://api.openai.com/v1\"\n# # language = \"en\" # optional BCP-47 language hint\n\n# ── Text-to-speech (TTS) ─────────────────────────────────────────────────────\n# Providers: \"openai\", \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [tts]\n# provider = \"deepgram\"\n# model = \"aura-2-thalia-en\" # provider-specific default if omitted\n# # voice = \"nova\" # voice name (OpenAI); ignored by Deepgram auto-detect\n# # api_key = \"sk-...\" # or set DEEPGRAM_API_KEY / OPENAI_API_KEY env var\n# # base_url = \"https://api.deepgram.com/v1\"\n#\n# Per-language voice overrides (Deepgram only).\n# When no explicit voice is set, Deepgram auto-detects the language of each\n# TTS request and selects a matching Aura 2 voice. Override defaults here:\n#\n# [tts.voices]\n# en = \"aura-2-thalia-en\" # English (default)\n# de = \"aura-2-julius-de\" # German (default)\n# es = \"aura-2-lucia-es\" # Spanish (default)\n# fr = \"aura-2-chloe-fr\" # French (default)\n\n# ── Autonomous Learning ───────────────────────────────────────────────────────\n# The agent creates skills from complex tasks and periodically improves them.\n[learning]\nenabled = true # master switch (default: true)\nauto_create_skills = true # generate skills from novel tasks\nauto_apply_refinements = true # apply improvements without /review\nmin_tool_calls_for_skill = 3 # minimum tool calls to consider skill creation\nmin_executions_for_analysis = 10 # minimum traces before self-analysis\nimprovement_cron = \"0 */6 * * *\" # run improvement cycle every 6 hours\nerror_rate_threshold = 0.2 # trigger improvement above 20% error rate\nrevert_window = 5 # executions to evaluate after refinement\nrevert_regression_threshold = 0.1 # revert if error rate increases by >10pp\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "a275be05c6009232d170478cf3eac9a78ec0246a": {"t": 1785767756.0677776, "n": 11660, "h": "c037e849fd749f32", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n# ── Transcription (speech-to-text) ────────────────────────────────────────────\n# Providers: \"whisper\" (OpenAI), \"ollama\" (local), \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [transcription]\n# provider = \"whisper\"\n# model = \"whisper-1\" # provider-specific default if omitted\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# # base_url = \"https://api.openai.com/v1\"\n# # language = \"en\" # optional BCP-47 language hint\n\n# ── Text-to-speech (TTS) ─────────────────────────────────────────────────────\n# Providers: \"openai\", \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [tts]\n# provider = \"deepgram\"\n# model = \"aura-2-thalia-en\" # provider-specific default if omitted\n# # voice = \"nova\" # voice name (OpenAI); ignored by Deepgram auto-detect\n# # api_key = \"sk-...\" # or set DEEPGRAM_API_KEY / OPENAI_API_KEY env var\n# # base_url = \"https://api.deepgram.com/v1\"\n#\n# Per-language voice overrides (Deepgram only).\n# When no explicit voice is set, Deepgram auto-detects the language of each\n# TTS request and selects a matching Aura 2 voice. Override defaults here:\n#\n# [tts.voices]\n# en = \"aura-2-thalia-en\" # English (default)\n# de = \"aura-2-julius-de\" # German (default)\n# es = \"aura-2-lucia-es\" # Spanish (default)\n# fr = \"aura-2-chloe-fr\" # French (default)\n\n# ── Autonomous Learning ───────────────────────────────────────────────────────\n# The agent creates skills from complex tasks and periodically improves them.\n[learning]\nenabled = true # master switch (default: true)\nauto_create_skills = true # generate skills from novel tasks\nauto_apply_refinements = true # apply improvements without /review\nmin_tool_calls_for_skill = 3 # minimum tool calls to consider skill creation\nmin_executions_for_analysis = 10 # minimum traces before self-analysis\nimprovement_cron = \"0 */6 * * *\" # run improvement cycle every 6 hours\nerror_rate_threshold = 0.2 # trigger improvement above 20% error rate\nrevert_window = 5 # executions to evaluate after refinement\nrevert_regression_threshold = 0.1 # revert if error rate increases by >10pp\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "3c54e07b9dc35291c07e2e34c6390d7917fc1e80": {"t": 1785767757.6122189, "n": 10774, "h": "7f111cfd727ee58d", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n# ── Transcription (speech-to-text) ────────────────────────────────────────────\n# Providers: \"whisper\" (OpenAI), \"ollama\" (local), \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [transcription]\n# provider = \"whisper\"\n# model = \"whisper-1\" # provider-specific default if omitted\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# # base_url = \"https://api.openai.com/v1\"\n# # language = \"en\" # optional BCP-47 language hint\n\n# ── Text-to-speech (TTS) ─────────────────────────────────────────────────────\n# Providers: \"openai\", \"deepgram\"\n# API keys fall back to env vars: OPENAI_API_KEY, DEEPGRAM_API_KEY\n#\n# [tts]\n# provider = \"deepgram\"\n# model = \"aura-2-thalia-en\" # provider-specific default if omitted\n# # voice = \"nova\" # voice name (OpenAI); ignored by Deepgram auto-detect\n# # api_key = \"sk-...\" # or set DEEPGRAM_API_KEY / OPENAI_API_KEY env var\n# # base_url = \"https://api.deepgram.com/v1\"\n#\n# Per-language voice overrides (Deepgram only).\n# When no explicit voice is set, Deepgram auto-detects the language of each\n# TTS request and selects a matching Aura 2 voice. Override defaults here:\n#\n# [tts.voices]\n# en = \"aura-2-thalia-en\" # English (default)\n# de = \"aura-2-julius-de\" # German (default)\n# es = \"aura-2-lucia-es\" # Spanish (default)\n# fr = \"aura-2-chloe-fr\" # French (default)\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "25f3ebfdeebe0bcbf9e1b4380cd7b30f0287e0b2": {"t": 1785767758.9354668, "n": 9274, "h": "61f775204dad7e9d", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n[signal]\n# Signal interface settings — requires a running signal-cli-rest-api daemon.\n# See: https://github.com/bbernhard/signal-cli-rest-api\n# phone_number = \"+1234567890\" # Bot's registered Signal number (required)\n# api_url = \"http://localhost:8080\" # signal-cli-rest-api base URL (default)\n# api_user = \"\" # HTTP Basic Auth username (optional)\n# api_password = \"\" # HTTP Basic Auth password (optional)\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "f3226b14aa8aa0b5d189f8582499811928d6da8a": {"t": 1785767760.422029, "n": 8931, "h": "78bfe6bb0996ae37", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[agent]\n# Active assistant context ID. Each agent gets its own memory/workspace root at\n# ~/.assistant/agents/<id>/ while sharing the same SQLite database.\n# id = \"default\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/agents/default/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/agents/default/AGENTS.md\"\n# soul_path = \"~/.assistant/agents/default/SOUL.md\"\n# identity_path = \"~/.assistant/agents/default/IDENTITY.md\"\n# user_path = \"~/.assistant/agents/default/USER.md\"\n# tools_path = \"~/.assistant/agents/default/TOOLS.md\"\n# memory_path = \"~/.assistant/agents/default/MEMORY.md\"\n# notes_dir = \"~/.assistant/agents/default/memory\"\n# bootstrap_path = \"~/.assistant/agents/default/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/agents/default/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/agents/default/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "9cd2c317e720c6d30a5e948233e392bed4e7b61c": {"t": 1785767761.8864892, "n": 8592, "h": "75700a77bae05386", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n# [bus]\n# Message bus backend. Options: \"sqlite\" (default), \"nats\".\n# NATS JetStream eliminates SQLite write-lock contention when the\n# orchestrator, OTel exporters, and bus all share a single SQLite pool.\n# Requires the `nats` feature to be compiled in.\n# kind = \"nats\"\n# nats_url = \"nats://localhost:4222\" # or set NATS_URL env var\n#\n# Authentication (pick one, all fields fall back to env vars):\n# username = \"myuser\" # or NATS_USER\n# password = \"s3cret\" # or NATS_PASSWORD\n# token = \"t0k3n!\" # or NATS_TOKEN\n# credentials_file = \"/path/to/nats.creds\" # or NATS_CREDENTIALS_FILE\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "7a0291eb073b3d61479a611e26d54ee23fbda50f": {"t": 1785767763.238791, "n": 7952, "h": "4952e643a96e4ff3", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "8eab50e1acc339994646ce2592cd6dbd0e2eb2a4": {"t": 1785767764.667092, "n": 8166, "h": "1eead8084ef9515b", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n# Enable the built-in MCP server (JSON-RPC over stdio)\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n# ── External MCP servers (client connections) ─────────────────────────────────\n# Connect to external MCP servers and bridge their tools into the assistant.\n# Tools are namespaced as mcp__{name}__{tool_name} to avoid collisions.\n#\n# Stdio transport — spawns a local subprocess:\n# [[mcp.servers]]\n# name = \"github\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-github\"]\n# trust = \"confirm\" # \"confirm\" (default) or \"trust\"\n# [mcp.servers.env]\n# GITHUB_TOKEN = \"${GITHUB_TOKEN}\"\n#\n# [[mcp.servers]]\n# name = \"filesystem\"\n# command = [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/docs\"]\n# trust = \"trust\" # read-only server, skip confirmation\n#\n# HTTP/SSE transport — connect to a remote server:\n# [[mcp.servers]]\n# name = \"remote-db\"\n# url = \"https://db.example.com/mcp/sse\"\n# [mcp.servers.headers]\n# Authorization = \"Bearer ${DB_TOKEN}\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "041b9c613c8f78323b5d2bf339d0515e7178718d": {"t": 1785767765.9372473, "n": 7240, "h": "362a7277118a5c6a", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "a90de0a26fe8af1cdcf210b83e365b5b1a6490f2": {"t": 1785767767.3292882, "n": 7287, "h": "b8e933fab84719e5", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Hosted web search (requires gpt-4o-search-preview, gpt-4o-mini-search-preview,\n# # or gpt-5-search-api model):\n# # [llm.openai.web_search]\n# # enabled = true\n# # search_context_size = \"medium\" # \"low\", \"medium\" (default), or \"high\"\n# # [llm.openai.web_search.user_location]\n# # country = \"US\"\n# # city = \"San Francisco\"\n# # region = \"California\"\n# # timezone = \"America/Los_Angeles\"\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n#\n# # Hosted web search ($web_search builtin — server-side, no extra cost):\n# # [llm.moonshot.web_search]\n# # enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "0c438ed4b84ece11fe1114f82f871f74500ff718": {"t": 1785767768.5173965, "n": 6750, "h": "52d51ea11a66e7b1", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n# ── Moonshot AI (Kimi) cloud provider ─────────────────────────────────────────\n# To use Moonshot AI instead of a local Ollama model, replace the [llm] block\n# above with (or uncomment) the following:\n#\n# [llm]\n# provider = \"moonshot\"\n# model = \"kimi-k2.5\" # or moonshot-v1-128k, kimi-latest, kimi-k2-thinking\n# api_key = \"sk-...\" # or set MOONSHOT_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Use the China endpoint instead of global:\n# # base_url = \"https://api.moonshot.cn/v1\"\n#\n# [llm.moonshot]\n# max_tokens = 8192 # max completion tokens per response\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "3aa8fb03dfcf58761a1b9988e409156d0303599c": {"t": 1785767769.749238, "n": 6110, "h": "75a9d0c5f3a4cb9e", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── Dedicated embedding provider ──────────────────────────────────────────────\n# Ollama and OpenAI support embeddings natively — no extra config needed.\n# For Anthropic (which has no built-in embeddings), or when you want a\n# specialised embedding model, add an [llm.embeddings] section.\n#\n# Supported providers: \"ollama\", \"openai\", \"voyage\"\n# API keys fall back to env vars: OPENAI_API_KEY, VOYAGE_API_KEY\n#\n# Voyage AI (recommended by Anthropic):\n# [llm.embeddings]\n# provider = \"voyage\"\n# model = \"voyage-3-lite\" # default; also voyage-3, voyage-3-large\n# # api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n#\n# Ollama (use your local server for embeddings while chatting via Anthropic):\n# [llm.embeddings]\n# provider = \"ollama\"\n# model = \"nomic-embed-text\" # default\n# base_url = \"http://localhost:11434\"\n#\n# OpenAI:\n# [llm.embeddings]\n# provider = \"openai\"\n# model = \"text-embedding-3-small\" # default; also text-embedding-3-large\n# # api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "af44f8a7609c9bc9cbdec3042cc9ca97f633ba3c": {"t": 1785767771.031611, "n": 5063, "h": "335c3af145818ebb", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud), \"openai\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n# ── OpenAI cloud provider ─────────────────────────────────────────────────────\n# To use OpenAI instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"openai\"\n# model = \"gpt-4o\" # or gpt-4.1, gpt-4o-mini, o3-mini, o3\n# api_key = \"sk-...\" # or set OPENAI_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n# embedding_model = \"text-embedding-3-small\"\n#\n# [llm.openai]\n# max_tokens = 8192 # max_completion_tokens per response\n#\n# # Alternative: OAuth PKCE mode for Codex subscriptions (billed against\n# # your ChatGPT plan quota instead of API credits).\n# # [llm.openai]\n# # auth_mode = \"oauth\"\n# # oauth_client_id = \"your-client-id\"\n# # max_tokens = 8192\n#\n# The base_url setting also works with OpenAI-compatible APIs:\n# base_url = \"https://openrouter.ai/api/v1\" # OpenRouter\n# base_url = \"http://localhost:8000/v1\" # vLLM / LM Studio\n# See docs/openai.md for full details.\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "0837a23515dc60842ca7503a1e1d47c70c24c2d1": {"t": 1785767772.3415532, "n": 3997, "h": "17e0ecc793be4f6e", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, AGENTS.md / SOUL.md / IDENTITY.md / USER.md / TOOLS.md /\n# MEMORY.md are read at the start of every turn and injected as the system\n# prompt. Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# agents_path = \"~/.assistant/AGENTS.md\"\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# tools_path = \"~/.assistant/TOOLS.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n# bootstrap_path = \"~/.assistant/BOOTSTRAP.md\"\n# heartbeat_path = \"~/.assistant/HEARTBEAT.md\"\n# boot_path = \"~/.assistant/BOOT.md\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "50eca8258c7d06d9422acfeb11b4d733fbfd8335": {"t": 1785767773.5555003, "n": 3763, "h": "66248f0d1299d7bd", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n# Record full message content on LLM spans (system prompt, input messages,\n# output messages, tool definitions). Off by default — content may contain PII.\n# trace_content = false\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "d8ee35d5caefb4f1e478ecd8d665523f50f0a375": {"t": 1785767774.9006522, "n": 3583, "h": "ebdf57a6fab50103", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 80\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 80\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "f3f5ad2de31f03ae1d9825d99266f8ee79177f47": {"t": 1785767776.1422756, "n": 3583, "h": "8f1cc52426abd82c", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 10\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true # enabled by default; set to false to disable\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "40eb8ef8f4c8a673f25c1079093d70bef4b34581": {"t": 1785767782.190312, "n": 3471, "h": "b42af491b2d48d06", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 10\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n#\n# # Optional: enable Anthropic's hosted web fetch tool\n# [llm.anthropic.web_fetch]\n# enabled = true\n# max_uses = 10\n# max_content_tokens = 100000\n# allowed_domains = []\n# blocked_domains = []\n# citations.enabled = true\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "e21bbf02afb0306dc73b2e14370b68ecbef3632e": {"t": 1785767783.3629687, "n": 3250, "h": "9b6ea7b8ba9d903f", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 10\n# timeout_secs = 120\n#\n# # Optional: enable Anthropic's hosted web search tool\n# [llm.anthropic.web_search]\n# enabled = true\n# max_uses = 3\n# allowed_domains = [\"example.com\"]\n# blocked_domains = []\n#\n# [llm.anthropic.web_search.user_location]\n# type = \"approximate\"\n# city = \"San Francisco\"\n# region = \"California\"\n# country = \"US\"\n# timezone = \"America/Los_Angeles\"\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "5e15f0195069af983fb688d20e9019eb7393acef": {"t": 1785767784.6075757, "n": 2903, "h": "1d832a15f10f86a3", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 10\n# timeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (highest priority first):\n# 1. entries from extra_dirs (defaults target Claude Code/NanoClaw folders)\n# 2. ~/.assistant/skills/ (user personal)\n# 3. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 4. <binary dir>/skills/ (built-in sidecar, optional)\n\n# Extra skill directories to include. Paths may be absolute, use ~/ for home,\n# or be relative to the current project directory. By default the assistant\n# also scans ~/.claude/skills and ./.claude/skills so Claude Code / NanoClaw\n# skills are picked up automatically.\n# extra_dirs = [\"~/.claude/skills\", \"./.claude/skills\"]\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "1d264c2aed0a0fdbf8ba8613f006f9411ebde5af": {"t": 1785767785.7956178, "n": 2549, "h": "8fcca8a347761b47", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Options: \"ollama\" (default, local), \"anthropic\" (cloud).\nprovider = \"ollama\"\n# Model to use for inference.\n# Ollama models — requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n# ── Anthropic cloud provider ──────────────────────────────────────────────────\n# To use Claude instead of a local Ollama model, replace the [llm] block above\n# with (or uncomment) the following:\n#\n# [llm]\n# provider = \"anthropic\"\n# model = \"claude-opus-4-6\" # or claude-sonnet-4-6, claude-haiku-4-5-20251001\n# api_key = \"sk-ant-...\" # or set ANTHROPIC_API_KEY env var\n# max_iterations = 10\n# timeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "ed7abcb6e70b5e779a898f5693bf417b749961b9": {"t": 1785767788.0760763, "n": 2163, "h": "34ede427a1cf3cf4", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# LLM backend provider. Currently only \"ollama\" is supported; additional\n# providers (openai, anthropic, …) will be added in future crates.\nprovider = \"ollama\"\n# Ollama model to use for inference.\n# Requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "7158b587e323359d627fda650ceab32a1c074b7a": {"t": 1785767789.3684947, "n": 2002, "h": "7c70e7c7f2a8447b", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# Ollama model to use for inference.\n# Requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[memory]\n# Persistent markdown memory files.\n# When enabled, SOUL.md / IDENTITY.md / USER.md / MEMORY.md are read at the\n# start of every turn and injected as the system prompt.\n# Defaults are written to ~/.assistant/ on first run.\n\n# enabled = true\n# soul_path = \"~/.assistant/SOUL.md\"\n# identity_path = \"~/.assistant/IDENTITY.md\"\n# user_path = \"~/.assistant/USER.md\"\n# memory_path = \"~/.assistant/MEMORY.md\"\n# notes_dir = \"~/.assistant/memory\"\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "e789324ebedc02f4388be291f334703ff4e90410": {"t": 1785767790.5308943, "n": 1555, "h": "d693f8232afc978a", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# Ollama model to use for inference.\n# Requires native tool-calling support. Recommended choices (2026):\n#\n# ≤ 8 GB VRAM — qwen2.5:7b (default), llama3.1:8b, mistral:7b-instruct-v0.3\n# ≤ 12 GB VRAM — qwen2.5:14b (recommended upgrade), deepseek-r1:14b, phi4:14b\n# ≤ 24 GB VRAM — qwen2.5:32b\n#\n# Use Q4_K_M quantization for 14 B+ models.\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "6eb6280f734a159972b37f8d127a524939ee9ef0": {"t": 1785767791.805082, "n": 1248, "h": "f940e95866579120", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# Ollama model to use for inference\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Maximum tool-calling iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}, "62d7f4647bbe9a14ab0eedf3aed42e797616756a": {"t": 1785767793.1043148, "n": 1389, "h": "af269f364f95f43d", "c": "# Default configuration for the AI assistant\n# Copy to ~/.assistant/config.toml and customize\n\n[llm]\n# Ollama model to use for inference\nmodel = \"qwen2.5:7b\"\n# Ollama API base URL\nbase_url = \"http://localhost:11434\"\n# Tool calling mode: \"native\" | \"react\" | \"auto\"\n# \"auto\": try native first, fall back to ReAct if model doesn't support it\ntool_call_mode = \"auto\"\n# Maximum ReAct iterations per turn\nmax_iterations = 10\n# Timeout for LLM calls (seconds)\ntimeout_secs = 120\n\n[storage]\n# Path to SQLite database (~/.assistant/assistant.db by default)\n# db_path = \"~/.assistant/assistant.db\"\n\n[skills]\n# Directories to scan for skills (in priority order):\n# 1. ~/.assistant/skills/ (user personal)\n# 2. <project>/.assistant/skills/ (project-scoped, auto-detected)\n# 3. <binary dir>/skills/ (built-in, always included)\n\n# Extra skill directories to include\n# extra_dirs = []\n\n# Skills to disable (by name)\n# disabled = []\n\n[mcp]\n# Enable the MCP server\nenabled = true\n# Listen address for MCP server\nlisten = \"127.0.0.1:3000\"\n\n[self_improvement]\n# Enable passive execution trace collection\ntrace_enabled = true\n# How many recent traces to include in self-analysis (per skill)\nanalysis_window = 50\n\n[signal]\n# Signal interface settings (only used if compiled with --features signal)\n# phone_number = \"+1234567890\"\n# allowed_senders = [] # If set, only these numbers can interact with the bot\n"}}, "docs/moonshot.md": {"d79ef5e4890e835aba4314e52f2b7034257a75ce": {"t": 1785846823.9481373, "n": 7388, "h": "34127a6418641cbc", "c": "# Moonshot AI (Kimi) Provider\n\nConnects the assistant to Moonshot AI's chat completions API via the\n`assistant-provider-moonshot` crate. Moonshot AI (also branded as Kimi)\nexposes an OpenAI-compatible endpoint, so the provider is implemented as\na thin facade over the existing `assistant-provider-openai` crate.\n\n## Quick start\n\n```sh\n# Set your API key (or put it in config.toml)\nexport MOONSHOT_API_KEY=sk-...\n\n# Edit ~/.assistant/config.toml\ncat <<'EOF' >> ~/.assistant/config.toml\n[llm]\nprovider = \"moonshot\"\nmodel = \"kimi-k2.6\"\nEOF\n\n# Run the assistant\ncargo run -p assistant-cli\n```\n\n## Configuration\n\nAll Moonshot settings live under the `[llm]` and `[llm.moonshot]`\nsections in `~/.assistant/config.toml`.\n\n### `[llm]` section\n\n| Key | Env var | Default | Description |\n| ---------------- | ------------------ | ------------------------------ | ----------------------------------------- |\n| `provider` | | `\"ollama\"` | Set to `\"moonshot\"` to use this provider |\n| `model` | | `\"kimi-k2.6\"` | Moonshot model ID (see [Models](#models)) |\n| `api_key` | `MOONSHOT_API_KEY` | _(required)_ | API key; env var is checked as fallback |\n| `base_url` | | `\"https://api.moonshot.ai/v1\"` | API base URL |\n| `max_iterations` | | `80` | Max tool-calling iterations per turn |\n| `timeout_secs` | | `120` | Timeout for each LLM call (seconds) |\n\n### `[llm.moonshot]` section\n\n| Key | Default | Description |\n| ------------ | ------- | -------------------------------------- |\n| `max_tokens` | `8192` | Maximum completion tokens per response |\n\n## Authentication\n\nObtain an API key from\n[platform.moonshot.ai](https://platform.moonshot.ai/) and set it via\nenvironment variable or config file:\n\n```sh\n# Environment variable (recommended — avoids secrets in config files)\nexport MOONSHOT_API_KEY=sk-...\n\n# Or in config.toml\n[llm]\nprovider = \"moonshot\"\napi_key = \"sk-...\"\n```\n\nThe provider checks `api_key` in the config first, then falls back to\nthe `MOONSHOT_API_KEY` environment variable.\n\n## Regional endpoints\n\nMoonshot AI offers two base URLs:\n\n| Region | Base URL |\n| ---------------- | ---------------------------- |\n| Global (default) | `https://api.moonshot.ai/v1` |\n| China | `https://api.moonshot.cn/v1` |\n\nTo use the China endpoint:\n\n```toml\n[llm]\nprovider = \"moonshot\"\nmodel = \"kimi-k2.6\"\nbase_url = \"https://api.moonshot.cn/v1\"\n```\n\n## Capabilities\n\n| Capability | Value |\n| ------------ | --------------------- |\n| Tool calling | Native |\n| Streaming | Yes |\n| Vision | Yes (model-dependent) |\n| Embeddings | No |\n\nSince Moonshot does not provide an embeddings endpoint, configure a\ndedicated embedding provider if you need vector search:\n\n```toml\n[llm.embeddings]\nprovider = \"voyage\"\nmodel = \"voyage-3-lite\"\n# api_key = \"pa-...\" # or set VOYAGE_API_KEY env var\n```\n\n## Models\n\n### Current generation (Kimi K2.6)\n\n| Model | Context | Tool calling | Vision | Notes |\n| -------------------- | ------- | ------------ | ------ | ---------------------------- |\n| `kimi-k2.6` | 262K | Yes | Yes | Latest flagship, recommended |\n| `kimi-k2.6-thinking` | 262K | Yes | Yes | Reasoning variant of K2.6 |\n\n### Previous generation (Kimi K2 / K2.5)\n\n| Model | Context | Tool calling | Vision | Notes |\n| ------------------------ | ------- | ------------ | ------ | ------------------------ |\n| `kimi-k2.5` | 262K | Yes | Yes | Previous flagship |\n| `kimi-k2-0905-preview` | 262K | Yes | No | K2 preview (Sep 2025) |\n| `kimi-k2-turbo-preview` | 262K | Yes | No | Faster K2 variant |\n| `kimi-k2-thinking` | 262K | Yes | No | Reasoning model |\n| `kimi-k2-thinking-turbo` | 262K | Yes | No | Faster reasoning variant |\n\n### Kimi Latest\n\n| Model | Context | Vision | Notes |\n| ------------------ | ------- | ------ | -------------------------- |\n| `kimi-latest` | 131K | Yes | Auto context window |\n| `kimi-latest-128k` | 131K | Yes | Fixed 128K context |\n| `kimi-latest-32k` | 32K | Yes | Fixed 32K context |\n| `kimi-latest-8k` | 8K | Yes | Fixed 8K context, cheapest |\n\n### Legacy (moonshot-v1)\n\n| Model | Context | Vision | Notes |\n| ------------------ | ------- | ------ | ---------------------- |\n| `moonshot-v1-auto` | 131K | No | Auto context selection |\n| `moonshot-v1-128k` | 131K | No | Fixed 128K |\n| `moonshot-v1-32k` | 32K | No | Fixed 32K |\n| `moonshot-v1-8k` | 8K | No | Fixed 8K, cheapest |\n\nVision variants (`moonshot-v1-*-vision-preview`) are available for 8K,\n32K, and 128K context sizes.\n\n## API quirks\n\nMoonshot AI is OpenAI-compatible but has a few known differences:\n\n- **Temperature range**: Only `[0.0, 1.0]` (OpenAI allows up to 2.0).\n The provider sends `1.0` by default.\n- **`tool_choice = \"required\"`**: Not supported by the Moonshot API.\n- **No embeddings endpoint**: Use a dedicated embedding provider\n (Voyage, OpenAI, or Ollama).\n\n## Example configurations\n\n### Minimal\n\n```toml\n[llm]\nprovider = \"moonshot\"\nmodel = \"kimi-k2.6\"\n# api_key set via MOONSHOT_API_KEY env var\n```\n\n### Full\n\n```toml\n[llm]\nprovider = \"moonshot\"\nmodel = \"kimi-k2.6\"\napi_key = \"sk-...\"\nbase_url = \"https://api.moonshot.ai/v1\"\nmax_iterations = 80\ntimeout_secs = 120\n\n[llm.moonshot]\nmax_tokens = 8192\n\n[llm.embeddings]\nprovider = \"voyage\"\nmodel = \"voyage-3-lite\"\n```\n\n### China endpoint with thinking model\n\n```toml\n[llm]\nprovider = \"moonshot\"\nmodel = \"kimi-k2.6-thinking\"\nbase_url = \"https://api.moonshot.cn/v1\"\n```\n\n## Architecture\n\n```\nassistant-provider-moonshot\n src/\n lib.rs # Module exports\n provider.rs # MoonshotProvider (thin facade over OpenAIProvider)\n```\n\nThe provider delegates all chat completions, streaming, and tool-call\nlogic to `assistant-provider-openai`. It overrides construction\n(different default base URL, API key env var, model) and identity\n(`provider_name()` returns `\"moonshot\"`). The `embed()` method returns\nan error since Moonshot has no embeddings API.\n\n## Troubleshooting\n\n### \"Moonshot API key not found\"\n\nSet the key via environment variable or config file:\n\n```sh\nexport MOONSHOT_API_KEY=sk-...\n```\n\nOr add `api_key = \"sk-...\"` to the `[llm]` section in config.toml.\n\n### Requests timing out\n\nMoonshot's API can be slower than OpenAI for large context windows.\nIncrease the timeout:\n\n```toml\n[llm]\ntimeout_secs = 300\n```\n\n### Vision not working\n\nOnly certain models support vision (e.g. `kimi-k2.6`, `kimi-k2.5`,\n`kimi-latest`, `moonshot-v1-*-vision-preview`). Check the [Models](#models) table\nand ensure you are using a vision-capable model.\n"}}}}