Skip to content
orlandoascanioPublic

About

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.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

412 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Talon ๐Ÿฆ…

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)


๐Ÿ“Š Quick Stats

  • 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

โœจ What Makes Talon Different

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

๐Ÿš€ Features

Multi-Channel Communication

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
โœˆ๏ธ Telegram โœ… 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.

๐ŸŽจ Enhanced CLI

Terminal Interface:

talon tui          # Interactive TUI
talon tui-legacy   # Legacy readline TUI

Features:

  • ๐Ÿ“Š 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

๐Ÿ—๏ธ Core Architecture

Health Checks

  • 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

Config Hot Reload

  • Automatic Reload - Watches config file for changes
  • Debounced Updates - 300ms debounce prevents rapid reloads
  • Event Emission - Notifies components on config change

Daemon Mode

  • Background Running - Run as system service
  • PID File Management - Track running process
  • Platform Support - macOS (launchd), Linux (systemd)
  • Service Generation - Auto-generate service files

Gateway Server

  • 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

Shadow Loop (Proactive Intelligence)

  • 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

AI Agent Capabilities

  • 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

Tools Available

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

Productivity Tools

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

Subagent System

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.

Browser Control

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

CLI Features

# 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!

๐Ÿš€ Boot Hook (BOOT.md)

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

Security & Privacy

  • 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.


๐Ÿ“ฆ Installation

Prerequisites

Quick Start

# 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 start

Setup Wizard

The setup wizard will:

  1. Create ~/.talon/.env for your API keys
  2. Create ~/.talon/config.json for configuration
  3. Copy template files to ~/.talon/workspace/
  4. Configure your preferred LLM provider

CLI Commands

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

Cron Quickstart

  1. Set your default channel in ~/.talon/workspace/PROFILE.json:
{
  "name": "Orlando",
  "preferredName": "Gojer",
  "timezone": "America/New_York",
  "channels": {
    "default": "telegram"
  }
}
  1. 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


โš™๏ธ Configuration

Environment Variables (~/.talon/.env)

# 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

Config File (~/.talon/config.json)

{
  "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.


๐Ÿ“ฑ Channel Setup Guide

Telegram Setup (5 minutes)

  1. Create a bot: Message @BotFather on Telegram

    • Send /newbot and follow prompts
    • Copy the bot token (e.g., 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
  2. Find your user ID: Message @userinfobot

    • It will reply with your numeric ID (e.g., 123456789)
  3. Add to .env:

    TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
  4. Update ~/.talon/config.json:

    "telegram": {
      "enabled": true,
      "botToken": "${TELEGRAM_BOT_TOKEN}",
      "allowedUsers": ["123456789"]
    }
  5. Restart Talon: npm start

WhatsApp Setup (2 minutes)

  1. Install dependencies:

    npm install whatsapp-web.js qrcode-terminal
  2. Find your phone number: Include country code, no + (e.g., 584128449024)

  3. Add to .env:

    WHATSAPP_PHONE_NUMBER=584128449024
  4. Update ~/.talon/config.json:

    "whatsapp": {
      "enabled": true,
      "allowedUsers": ["${WHATSAPP_PHONE_NUMBER}"]
    }
  5. Restart Talon: npm start

    • Scan the QR code displayed in terminal with your WhatsApp phone app
    • Session persists across restarts

WhatsApp Business API (Enterprise Alternative)

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:

  1. Create Twilio account at twilio.com
  2. Get WhatsApp sandbox or production number
  3. Install Twilio CLI:
    npm install twilio
  4. Add to .env:
    TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxx
    TWILIO_AUTH_TOKEN=your_auth_token
    TWILIO_WHATSAPP_NUMBER=+14155238886
  5. 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.


๐Ÿ“š Documentation

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

๐Ÿ—๏ธ Architecture (v0.3.3)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     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     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ Tech Stack

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

๐Ÿ“ Commands

# 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 port

๐Ÿ” Security First

Before you start, read:

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

๐Ÿ—บ๏ธ Roadmap

โœ… v0.3.3 (Current) - Enterprise Architecture

  • 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

๐Ÿšง v0.4.0 (Planned)

  • Web dashboard UI (React-based)
  • Multi-agent support
  • Browser automation tools
  • Advanced memory features

๐Ÿ”ฎ v1.0.0 (Future)

  • Stable API
  • Plugin marketplace
  • Mobile apps
  • Enterprise features
  • Calendar integration
  • Email integration
  • SQLite memory storage

See docs/08-ROADMAP.md for full details.


๐Ÿค Contributing

This is a personal project, but suggestions and feedback are welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

Note: Never commit personal data. See security guide.


๐Ÿ“„ License

MIT License - See LICENSE file


๐Ÿ™ Acknowledgments


Made with โค๏ธ for personal AI freedom

Changelog ยท Documentation ยท Issues

About

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.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages