Browser-based chatbot consumer built on the Calcifer SDK.
It keeps the application layer deliberately thin:
Chatbotwrapscalcifer.Agentand preserves conversation state.select_tools()exposesnone,chatbot,workspace, andalltool modes. Each mode builds its own system prompt rules. The defaultchatbotmode only enables built-inweb_search.workspaceincludes local read/search tools plusweb_search.- A local standard-library web server renders the chat page.
- Each assistant answer keeps its own run details. Click the answer or its trace capsule to inspect that specific run.
- The inspector has Overview, Steps, Sources, and Raw views. Overview explains the run path, Steps groups model requests and tool activity into readable actions, Sources lifts web search results into clickable cards, and Raw keeps the full event payloads for debugging.
- The Stop button aborts the browser request and asks the current agent run to stop gracefully.
- Tests use
calcifer.testing.MockProvider, so they run without a real LLM.
From the repository root:
pip install -e .
pip install -e apps/chatbot# ~/.zshrc
export DEEPSEEK_API_KEY=sk-...
calcifer-chatbotBy default the chatbot uses DeepSeek's OpenAI-compatible API:
- base URL:
https://api.deepseek.com - model:
deepseek-v4-flash
You can override either from the shell:
export DEEPSEEK_MODEL=deepseek-v4-flash
export DEEPSEEK_BASE_URL=https://api.deepseek.comUseful options:
calcifer-chatbot --tools none
calcifer-chatbot --tools chatbot
calcifer-chatbot --tools workspace
calcifer-chatbot --tools all
calcifer-chatbot --port 8766
calcifer-chatbot --no-open
calcifer-chatbot --provider openai --model gpt-4o-minipytest apps/chatbot/tests -q