A personal AI assistant that lives on your machine, sees your full desktop, and talks to you on the platforms you already use.
Inspired by OpenClaw โ rebuilt from scratch as a privacy-first, single-user AI assistant with proactive intelligence.
Version: 0.4.0 Status: Production-ready with Shadow Loop, subagents, browser control, productivity tools & full system access Channels: โ CLI, โ Telegram, โ WhatsApp (all production-ready)
- 70 Source Files - Enterprise-grade architecture
- 26+ Tools - File, shell, web, browser, productivity, Apple integrations
- 5 Subagents - Research, writer, planner, critic, summarizer
- 8 Apple Tools - Native Notes, Reminders, Calendar, Mail integration (macOS)
- 323 Tests - 100% passing with comprehensive coverage
- 3 Channels - CLI, Telegram, WhatsApp
- 97% Cost Savings - Via intelligent subagent delegation
Unlike cloud-based AI assistants, Talon:
- ๐ Runs entirely on your machine โ your data never leaves
- ๐ฌ Integrates with your existing apps โ Telegram, WhatsApp, CLI, Apple apps
- ๐ง Remembers everything โ persistent memory across sessions
- ๐ ๏ธ Has full system access โ files, shell, browser, calendar, notes (with your permission)
- ๐ฑ Works everywhere โ same AI on all your devices
- ๐ค Delegates intelligently โ uses cheap models for specialized tasks
- ๐๏ธ Watches proactively โ Shadow Loop observes and suggests
Talk to Talon wherever you are:
| Channel | Status | Features |
|---|---|---|
| ๐ป CLI | โ Enhanced | Interactive terminal with real-time streaming, tool visualization |
| ๐ฑ WhatsApp | โ Production Ready | Full WhatsApp Web integration, QR auth, groups, auto-reconnect, rate limiting |
| โ Production Ready | Bot integration, polling, user/group authorization, mention detection, message chunking | |
| ๐ Web UI | ๐ง Planned | Browser dashboard (coming in v0.4.0) |
Recent Channel Fixes (2026-02-23):
- โ Response delivery to all channels (CHAN-003)
- โ Telegram message chunking for 4096 char limit (CHAN-002)
- โ WhatsApp non-blocking initialization (CHAN-005)
- โ Telegram group mention detection (CHAN-006)
- โ WhatsApp auto-reconnection (CHAN-009)
- โ Rate limiting for WhatsApp (CHAN-010)
- โ Exponential backoff for Telegram polling (CHAN-008)
See docs/IssuesChannels.md for complete issue tracking.
Terminal Interface:
talon tui # Interactive TUI
talon tui-legacy # Legacy readline TUIFeatures:
- ๐ Real-time streaming with smooth updates
- ๐ ๏ธ Rich tool visualization (expandable results)
- ๐ฌ Session management with history
- ๐จ Syntax-highlighted code blocks
- โจ๏ธ Keyboard shortcuts
- ๐ Token usage display
- ๐ญ Markdown rendering
Keyboard Shortcuts:
| Shortcut | Action |
|---|---|
Ctrl+L |
Clear screen |
Ctrl+D |
Exit |
Ctrl+C |
Cancel/Interrupt |
- Basic Health (
GET /api/health) - Version, uptime, sessions, WebSocket clients - Deep Probe (
GET /api/health/deep) - Component-level health checks - Ready Check (
GET /api/ready) - For load balancers
- Automatic Reload - Watches config file for changes
- Debounced Updates - 300ms debounce prevents rapid reloads
- Event Emission - Notifies components on config change
- Background Running - Run as system service
- PID File Management - Track running process
- Platform Support - macOS (launchd), Linux (systemd)
- Service Generation - Auto-generate service files
- Fastify HTTP - REST API on port 19789
- WebSocket - Real-time messaging at
/ws - Session Management - Create, resume, persist sessions
- Event Bus - Pub/sub for internal communication
- Filesystem Watching - Monitors file changes with chokidar
- Smart Heuristics - Filters interesting events (new files, changes, test updates)
- Ghost Messages - Proactive suggestions before you ask
- Configurable - Custom paths, ignore patterns, cooldown periods
- Non-intrusive - Observes without interrupting your workflow
- 100% FREE Models โ OpenCode integration with 4 free models (no API key needed!)
- Smart Model Routing โ Uses cheapest capable model (OpenCode โ DeepSeek โ OpenRouter โ OpenAI)
- Automatic Fallback โ If one provider fails, seamlessly switches to another
- Context Window Protection โ Prevents crashes from token overflow
- Subagent Delegation โ Delegates specialized tasks to cheap models (97% cost savings)
- Tool Use โ Files, shell commands, web search, browser automation, subagents
- Persistent Memory โ Remembers your preferences, projects, context
- State Machine โ PLAN โ DECIDE โ EXECUTE โ EVALUATE โ RESPOND
| Tool | Description | Safety |
|---|---|---|
| ๐ File | Read, write, search files | Path validation, size limits |
| ๐ Shell | Execute commands | Timeout, blocked commands, confirmation |
| ๐ Web Search | DeepSeek, OpenRouter, Tavily, DuckDuckGo | - |
| ๐ Web Fetch | Extract content from URLs | Content cleaning |
| ๐ง Memory | Read/write to memory system | User-controlled |
| ๐ค Subagents | Delegate to specialized agents (research, writer, planner, critic, summarizer) | Cost-optimized |
| ๐ Browser | Navigate, click, type, screenshot, extract content | Puppeteer automation |
| ๐ Notes | Save and search notes in markdown | Local storage |
| โ Tasks | Todo list management with priorities | Local storage |
| ๐ Apple Notes | Create and search Apple Notes (macOS) | Native integration |
| โฐ Apple Reminders | Manage Apple Reminders (macOS) | Native integration |
| ๐ Apple Calendar | Create and manage calendar events (macOS) | Native integration |
| ๐ง Apple Mail | Read and manage emails (macOS) | Native integration |
Local Tools:
- notes_save - Save notes with tags to
~/.talon/workspace/notes/ - notes_search - Search notes by keyword or tag
- tasks_add - Add tasks with priority levels (low/medium/high)
- tasks_list - List tasks filtered by status
- tasks_complete - Mark tasks as done
Apple Integrations (macOS only):
- apple_notes_create - Create notes in Apple Notes app
- apple_notes_search - Search Apple Notes
- apple_reminders_add - Add reminders with due dates and priority
- apple_reminders_list - List reminders by list name
- apple_reminders_complete - Mark reminders as complete
- apple_calendar_create_event - Create calendar events with location and notes
- apple_calendar_list_events - List upcoming events
- apple_calendar_delete_event - Delete events by title
- ๐ง Apple Mail (macOS):
- apple_mail_list_emails - List emails from mailbox (inbox, sent, etc.)
- apple_mail_read_email - Read email content by message ID
- apple_mail_send_email - Send new emails with recipient, subject, body
Talon can delegate specialized tasks to lightweight subagents using cheap models:
| Subagent | Purpose | Output Format |
|---|---|---|
| ๐ Research | Gather information with sources | Findings + sources |
| โ๏ธ Writer | Produce content (markdown/code/text) | Content + word count |
| ๐ Planner | Create actionable plans | Steps + risks + timeline |
| ๐ฏ Critic | Review work with feedback | Rating + strengths/weaknesses |
| ๐ Summarizer | Compress information | Summary + key points |
Cost Savings: Main agent uses gpt-4o ($5/1M tokens), subagents use gpt-4o-mini ($0.15/1M tokens) = 97% savings
Configuration: Set agent.subagentModel in config to use any model:
openrouter/openai/gpt-4o-mini- OpenRouter (reliable)openrouter/google/gemini-flash-1.5- Google (fastest, $0.075/1M)deepseek/deepseek-chat- DeepSeek (cheapest, $0.14/1M)
See docs/SUBAGENT_CONFIGURATION.md for details.
Talon can control browsers with Puppeteer:
| Tool | Description |
|---|---|
| browser_navigate | Open URLs in browser |
| browser_click | Click elements by selector |
| browser_type | Type text into inputs |
| browser_screenshot | Capture page screenshots |
| browser_extract | Extract page content |
Features:
- Headless/headed mode
- Custom viewport sizes
- Auto-launch browser
- Full page automation
# Service Management
talon service install # Install as system service (LaunchAgent/systemd)
talon service uninstall # Remove service
talon service start # Start service
talon service stop # Stop service temporarily
talon service restart # Restart running service
talon service status # Check if installed/running
# Provider Management
talon provider # Add/change AI provider (saves API key to .env)
talon switch # Switch between configured models
# Interactive TUI
talon tui # Connect to running gateway with beautiful interface
# TUI Features:
โ Connected to gateway
โก Model: openrouter/gpt-4o
๐ Workspace: ~/.talon/workspace
You > Hello!
โณ Talon is thinking...
๐ ๏ธ file_read โ IDENTITY.md
โญโ Talon โโโโโโโโโโโโโโโโโโโโโ
โ Hey! ๐ How can I help?
โ
โ โข Clean formatting (no ** markdown)
โ โข Colored bullet points for readability
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Slash commands
/help Show available commands
/model Show current model
/config View configuration
/version Show version info
/clear Clear screen
/exit Exit TUI
# Bash execution
!ls -la Execute shell commands
Session:
/help Show available commands
/status Show session status and metrics
/reset Clear session history
/new Alias for /reset
/tokens Show estimated token usage
/compact Trigger memory compression
/clear Clear screen
/memory View recent memory files
Skills:
/time Show current date and time
/echo Echo back input text
/calc Simple calculator (e.g., /calc 2+2)
# Bash execution
You > !ls -la
$ ls -la
drwxr-xr-x 24 user staff 768 Feb 16 17:01 .
# Regular chat with tool usage
You > What's the weather in Tokyo?
๐ฆ
Talon > Let me check that for you...
๐ ๏ธ Using web_search...
๐ฆ
Talon > The weather in Tokyo is currently 18ยฐC and sunny...
๐ฐ 150 โ 200 = 350 tokens (DeepSeek)
# Check configuration
You > /config
โ๏ธ Talon Configuration
Workspace: /Users/orlando/.talon/workspace
Model: deepseek/deepseek-chat
Gateway: 127.0.0.1:19789
Channels: CLI โ
, Telegram โ, WhatsApp โ, WebChat โ
# Check version
You > /version
๐ฆ
Talon
Version: 0.3.0
Name: talon
Node: v22.10.0
Platform: darwin arm64
Uptime: 2h 35m
Providers: โ
DeepSeek, OpenRouter
Sessions: 5 active
Gateway: โ
Running
# Command suggestions for mistyped commands
You > /helpp
๐ฆ
Did you mean /help? Type /help to see all commands.
# Clear screen with welcome banner
You > /clear
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ฆ
T A L O N v0.3.3 โ
โ โ
โ Personal AI Assistant โ
โ Inspired by OpenClaw โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# When errors occur, Talon handles them gracefully with specific messages:
# โข "I'm having trouble with the conversation context..." - Context issues
# โข "It looks like there's an issue with your API key..." - Billing/quota
# โข "I'm being rate limited..." - Rate limit errors
# โข "The request timed out..." - Timeout errors
# โข "Network error..." - Connection issues
# โข Generic fallback message for other errors
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ฆ
T A L O N v0.3.3 โ
โ โ
โ Personal AI Assistant โ
โ Inspired by OpenClaw โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Skill commands example
You > /time
๐
Current time: Monday, February 16, 2026, 22:52:00 GMT-4
You > /calc 15 * 3
๐งฎ Result: 45
You > /echo Hello World!
๐ข Hello World!Run custom instructions on gateway startup:
# ~/.talon/workspace/BOOT.md
Good morning! Today is {{DATE}}.
Please check:
1. Any urgent notifications?
2. What's on my calendar?
3. Pending tasks from yesterday?
If all clear, just say "All clear!"- Executes through agent loop with full tool access
- Can send messages, run commands, check files
- Enable in setup wizard or config:
hooks.bootMd.enabled: true
- Local First โ Everything runs on your machine
- Secure Config โ API keys in
.env, never committed - Data Separation โ Personal data in
~/.talon/(gitignored) - Template System โ Clean templates with frontmatter, user data isolated
- Workspace Isolation โ Templates in
templates/workspace/, user data in~/.talon/workspace/ - Authorization โ Whitelist users/channels per platform
- Sandboxing โ Optional Docker sandbox for dangerous operations
๐ Important: Your personal data (name, memories, AI personality) is stored in ~/.talon/workspace/ and never committed to git. See Security Guide for details.
# Clone the repository
git clone https://github.com/yourusername/talon.git
cd talon
# Install dependencies
npm install
# Install WhatsApp support (optional, heavy)
npm install whatsapp-web.js qrcode-terminal
# Run secure setup wizard
npm run setup:secure
# Start Talon
npm startThe setup wizard will:
- Create
~/.talon/.envfor your API keys - Create
~/.talon/config.jsonfor configuration - Copy template files to
~/.talon/workspace/ - Configure your preferred LLM provider
talon setup # First-time setup wizard (auto-detects running gateways)
talon start # Start with interactive CLI (prevents duplicates)
talon start --daemon # Start in background
talon stop # Stop all running gateways (safe process detection)
talon restart # Restart daemon
talon health # Quick health check
talon status # Detailed status
talon provider # Add/change AI provider
talon switch # Switch between models
talon tui # Interactive TUI (connect to gateway)Cron (TUI slash commands):
/cron list # List jobs
/cron add # Interactive wizard
/cron show <jobId> # Full job details
/cron edit <jobId> # Edit job via menu
/cron enable <jobId> # Enable job
/cron disable <jobId> # Disable job
/cron remove <jobId> # Remove job
- Set your default channel in
~/.talon/workspace/PROFILE.json:
{
"name": "Orlando",
"preferredName": "Gojer",
"timezone": "America/New_York",
"channels": {
"default": "telegram"
}
}- Create a job in the TUI:
/cron add
Example prompt for an agent action:
Generate my 6am routine. Include a short Russian phrase and a podcast suggestion.
This will run daily and send the result to your default channel. 5. Set up your phone number for WhatsApp
# LLM Providers (required)
DEEPSEEK_API_KEY=sk-your-key-here
OPENROUTER_API_KEY=sk-or-your-key-here
# Channels (optional)
TELEGRAM_BOT_TOKEN=123456:ABC-your-token
WHATSAPP_PHONE_NUMBER=1234567890
# Security (optional)
TALON_TOKEN=your-auth-token{
"agent": {
"model": "deepseek/deepseek-chat",
"providers": {
"deepseek": {
"apiKey": "${DEEPSEEK_API_KEY}",
"models": ["deepseek-chat"]
}
}
},
"channels": {
"whatsapp": {
"enabled": true,
"allowedUsers": ["${WHATSAPP_PHONE_NUMBER}"]
},
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}"
}
}
}Note: Use ${ENV_VAR} syntax for secrets. They'll be replaced at runtime.
-
Create a bot: Message @BotFather on Telegram
- Send
/newbotand follow prompts - Copy the bot token (e.g.,
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
- Send
-
Find your user ID: Message @userinfobot
- It will reply with your numeric ID (e.g.,
123456789)
- It will reply with your numeric ID (e.g.,
-
Add to
.env:TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
-
Update
~/.talon/config.json:"telegram": { "enabled": true, "botToken": "${TELEGRAM_BOT_TOKEN}", "allowedUsers": ["123456789"] }
-
Restart Talon:
npm start
-
Install dependencies:
npm install whatsapp-web.js qrcode-terminal
-
Find your phone number: Include country code, no
+(e.g.,584128449024) -
Add to
.env:WHATSAPP_PHONE_NUMBER=584128449024
-
Update
~/.talon/config.json:"whatsapp": { "enabled": true, "allowedUsers": ["${WHATSAPP_PHONE_NUMBER}"] }
-
Restart Talon:
npm start- Scan the QR code displayed in terminal with your WhatsApp phone app
- Session persists across restarts
For enterprise users who need official WhatsApp Business API integration:
Requirements:
- WhatsApp Business API account via Meta or provider (Twilio, MessageBird, etc.)
- Business phone number (cannot use personal WhatsApp)
- Monthly fees apply (varies by provider and message volume)
Setup with Twilio:
- Create Twilio account at twilio.com
- Get WhatsApp sandbox or production number
- Install Twilio CLI:
npm install twilio
- Add to
.env:TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxx TWILIO_AUTH_TOKEN=your_auth_token TWILIO_WHATSAPP_NUMBER=+14155238886
- Update
config.json:"whatsapp": { "enabled": true, "provider": "twilio", "accountSid": "${TWILIO_ACCOUNT_SID}", "authToken": "${TWILIO_AUTH_TOKEN}", "whatsappNumber": "${TWILIO_WHATSAPP_NUMBER}", "allowedUsers": ["+1234567890"] }
Benefits of Business API:
- โ Official Meta support
- โ Higher message limits
- โ Verified business profile
- โ Analytics and insights
- โ Multi-agent support
Limitations:
- โ Monthly costs ($0.005-$0.10 per message)
- โ Approval process required
- โ Business use only (no personal accounts)
Note: The default whatsapp-web.js integration is FREE and recommended for personal use. Business API is only needed for enterprise scenarios.
| Document | Description |
|---|---|
| Vision | Project identity and principles |
| Architecture | System design and data flow |
| Architecture Enhancements | ๐๏ธ v0.3.3 architecture overview |
| Components | Detailed component specs |
| Tools | All 17+ built-in tools |
| Channels | Channel configuration |
| Memory | Memory system and persona |
| Security | ๐ Secure configuration guide |
| Repo Security | Open source security |
| Config | Full configuration reference |
| Roadmap | Future plans |
| Changelog | Version history |
| Features | Complete feature catalog |
| OpenClaw Comparison | Comparison with OpenClaw |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ USER INTERFACES โ
โ Telegram ยท WhatsApp ยท CLI ยท Plugins ยท (Web UI coming soon) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PROTOCOL LAYER โ
โ WebSocket ยท REST API ยท Gateway Frames ยท Zod Validation โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TALON GATEWAY โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Server โ โ Sessions โ โ Events โ โ
โ โ (Fastify) โ โ (Key Store) โ โ (Bus) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Plugins โ โ Cron โ โ Protocol โ โ
โ โ (Loader) โ โ (Scheduler) โ โ (Handler) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AGENT CORE โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Agent Loop โ โ Model Router โ โContext Guard โ โ
โ โ(State Machineโ โ (Fallback) โ โ(Token Mgmt) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ TOOLS โ โ MEMORY โ โ PROVIDERS โ
โ ยท File โ โ ยท Short-term โ โ ยท DeepSeek โ
โ ยท Shell โ โ ยท Long-term โ โ ยท OpenRouter โ
โ ยท Web โ โ ยท Facts โ โ ยท OpenAI โ
โ ยท Memory โ โ ยท Compress โ โ ยท Custom โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
| Layer | Technology |
|---|---|
| Runtime | Node.js 22+ |
| Language | TypeScript 5.7+ |
| Server | Fastify 5.x |
| Protocol | WebSocket, Zod validation |
| AI/LLM | OpenAI SDK, custom providers |
| Validation | Zod (schemas + runtime) |
| Logging | Pino |
| Terminal | Chalk, Inquirer |
| Testing | Vitest |
| Channels | whatsapp-web.js, node-fetch |
| Plugins | Dynamic loader, hot reload |
| Cron | Native scheduler |
# Development
npm run dev # Start with hot reload
npm run build # Compile TypeScript
npm test # Run tests
# CLI Commands
npm start # Start Talon gateway + CLI
npm run setup # Interactive setup wizard
npm run setup:secure # Secure setup with env vars
npm run health # Check gateway health
# Options
npm start -- --daemon # Run in background
npm start -- --port 8080 # Custom portBefore you start, read:
- docs/SECURITY.md โ How to configure securely
- docs/REPOSITORY_SECURITY.md โ Open source safety
Key Points:
- API keys go in
~/.talon/.env(never committed) - Personal data goes in
~/.talon/workspace/(gitignored) - Templates in
templates/workspace/are generic and safe - Each user gets their own copy of workspace files
- Structured profile lives in
~/.talon/workspace/PROFILE.json
- Protocol Layer - Structured message protocol with Zod validation
- Session Key System - Sophisticated session identification and management
- Plugin Architecture - Dynamic loading, channel plugins, tool extensions
- Cron Scheduler - Background tasks, job scheduling, event-driven execution
- Enhanced Gateway - 8-phase boot, comprehensive status reporting
- Multi-channel (Telegram, WhatsApp, CLI, Plugin Channels)
- Model fallback system with automatic retries
- Context window protection with smart truncation
- Secure configuration with data separation
- Web dashboard UI (React-based)
- Multi-agent support
- Browser automation tools
- Advanced memory features
- Stable API
- Plugin marketplace
- Mobile apps
- Enterprise features
- Calendar integration
- Email integration
- SQLite memory storage
See docs/08-ROADMAP.md for full details.
This is a personal project, but suggestions and feedback are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing) - Open a Pull Request
Note: Never commit personal data. See security guide.
MIT License - See LICENSE file
- Inspired by OpenClaw
- Built with Node.js, TypeScript, Fastify
- WhatsApp integration via whatsapp-web.js
Made with โค๏ธ for personal AI freedom
Changelog ยท Documentation ยท Issues