How cgoinglove/thursday works
Thursday is a local-first voice assistant: the user talks or writes, a live call handles the conversation and invokes tools, and longer jobs are handed to background bots whose work is saved and reported back. Bots can coordinate through threads, use browser, shell, files, skills and MCP tools, and produce artifacts in the workspace. Routines and messaging integrations provide additional ways to start jobs. The graph follows README-described capabilities and sampled route, query and manager behavior; unsampled internals are represented only at supported directory paths.
Main entry points: bot.run.ts Bot runner · live.session.ts Live session · page.tsx Assistant app · load-tools.ts Tool loader
Components 26
Live conversation
- Assistant app
app/page.tsx - Live session
lib/live/live.session.ts - Live API routes
app/api/thursday - Tool-call route
app/api/thursday/tool-call/route.ts - Tool loader
features/ai/load-tools.ts
Bots and jobs
- Bot API routes
app/api/bot - Bot runner
features/bot/bot.run.ts - Thread coordination
features/bot/room.query.ts - Scheduled routines
features/routine
Agent capabilities
- Readable memory
features/memory/memory.query.ts - Workspace files
features/workspace/workspace.ts - File serving
app/api/file/[...path]/route.ts - Artifact tools
features/artifact - Agent skills
features/skills - MCP connections
features/connectors/mcp.manager.ts - Browser sign-ins
features/signins/signins.query.ts
Local data
- Thread history
features/bot/thread.query.ts - App database
database/db.ts
External channels
- Model providers
features/ai/model.ts - Messaging channels
features/reach
Other components
- User
- Browser and shell
- MCP servers
- OpenAI live service
- Text model services
- Telegram Discord Slack
Connections 30
- User → Assistant app: speaks or writes
- Assistant app → Live session: opens call
- Live session → OpenAI live service: streams audio
- Live session → Live API routes: uses call routes
- Live API routes → Tool-call route: posts tool calls
- Tool-call route → Tool loader: loads tools
- Tool loader → Model providers: builds model tools
- Model providers → Text model services: calls text models
- Tool loader → Bot runner: delegates jobs
- Bot API routes → Bot runner: starts or resumes
- Bot runner → Thread coordination: coordinates work
- Thread coordination → Thread history: reads and writes
- Thread coordination → App database: persists room state
- Bot runner → Readable memory: recalls or updates
- Bot runner → Workspace files: reads and writes files
- Bot runner → Browser and shell: runs browser and shell
- Bot runner → Agent skills: loads skills
- Bot runner → MCP connections: invokes MCP tools
- MCP connections → MCP servers: connects tools
- Bot runner → Browser sign-ins: uses sign-in state
- Browser sign-ins → Browser and shell: reads browser state
- Bot runner → Artifact tools: creates results
- Artifact tools → Workspace files: saves files
- Assistant app → File serving: requests workspace files
- File serving → Workspace files: serves confined files
- Scheduled routines → Bot runner: starts scheduled jobs
- Telegram Discord Slack → Messaging channels: sends messages
- Messaging channels → Bot runner: starts or continues jobs
- Messaging channels → Live session: supports text calls
- User → Telegram Discord Slack: writes remotely