seth-ai
v1.0.0
Published
S.E.T.H. - Self Evolving Task Handler: A self-hosted personal AI assistant with multi-channel messaging and Claude AI
Maintainers
Readme
S.E.T.H. (Self Evolving Task Handler)
A self-hosted personal AI assistant powered by Claude that connects to your messaging platforms and can control your local machine.
Features
- Multi-Channel Messaging - Telegram, Discord, WhatsApp, CLI, WebSocket
- Claude AI - Powered by Anthropic's Claude (Opus)
- Onboarding Experience - New users get a hatching animation and guided setup to personalize SETH's behavior
- User Preferences - Configurable purpose, communication style, personality, and custom instructions per channel
- Desktop Control - Take screenshots, list windows, focus apps, send keystrokes, get system info (multi-monitor support)
- Browser Automation - Launch Chrome with your profile, navigate, click, type, extract content
- Local Machine Access - Run shell commands, read/write/edit files, browse the web
- Persistent Memory - Remembers conversations and facts across sessions with automatic summarization
- Skills System - Extensible with custom plugins (calculator, datetime, reminders built-in)
- Automation - Cron-based job scheduling and webhook triggers
- Integrations - Linear and GitHub integration for issue/project management
- Self-Hosted - Your data stays on your machine
Quick Start
# Install globally
npm install -g seth-ai
# Run setup wizard
seth init
# Start the assistant
seth gatewayManual Setup
# Clone the repository
git clone https://github.com/J0n4than-AI/S.E.T.H..git
cd S.E.T.H.
# Install dependencies
npm install
# Configure
cp .env.example .env
# Edit .env with your API keys
# Build and run
npm run build
npm run gatewayConfiguration
| Variable | Required | Description |
|----------|----------|-------------|
| ANTHROPIC_API_KEY | Yes | Your Anthropic API key |
| TELEGRAM_BOT_TOKEN | No | Telegram bot token from @BotFather |
| DISCORD_BOT_TOKEN | No | Discord bot token |
| WHATSAPP_ENABLED | No | Enable WhatsApp (shows QR code) |
| WEBHOOK_ENABLED | No | Enable webhook server |
| WEBHOOK_PORT | No | Webhook port (default: 3001) |
Onboarding
When a new user first interacts with SETH, they get a guided onboarding experience:
- Hatching animation - A fun egg-hatching sequence
- Introduction - SETH explains what it can do
- 3 setup questions - Purpose, communication style, and personality preferences
- Users can type "skip" on any question to use defaults
- Preferences are saved and injected into every future conversation
Existing users are detected automatically and silently onboarded without interruption. Preferences can be updated anytime with /setpurpose, /setstyle, /setpersonality, /setcustom, or reset with /resetpreferences.
CLI Commands
seth init # Interactive setup wizard
seth gateway # Start the assistant
seth chat # Interactive CLI chat
seth status # Show status
seth doctor # Run health checks
seth config # Display configuration
# Skills
seth skill list # List installed skills
seth skill install <path>
# Automation
seth automation list
seth automation create "Job Name" "0 9 * * *" -c telegram -t CHAT_ID -m "Hello!"Channel Commands
Telegram (/command)
Conversation:
/start - Initialize bot (triggers onboarding for new users)
/new or /reset - Clear conversation
/help - Show all commands
Memory:
/remember <fact> - Save a fact to memory
/forget <query> - Remove memories matching query
/memories [query] - View or search saved memories
Preferences:
/preferences - View current preferences
/setpurpose <text> - Set what SETH helps you with
/setstyle <text> - Set communication style
/setpersonality <text> - Set personality traits
/setcustom <text> - Set custom instructions
/resetpreferences - Redo onboarding setup
Tools & Skills:
/tools - List available tools
/skills - List installed skills
/calc <expr> - Calculate math expression
/time [zone] - Get current time
/date - Get current date
/remind <msg> in <time> - Set a reminder
Automation:
/jobs - List scheduled jobs
/schedule <cron> <message> - Create scheduled message
/unschedule <job_id> - Delete a scheduled job
Info:
/status - Show session statistics
/model - Current AI modelDiscord (!command)
Same commands as Telegram but prefixed with ! instead of /. Responds to mentions in servers and all messages in DMs.
WhatsApp (/command)
Same commands as Telegram. Connects via QR code authentication.
CLI
Same commands as Telegram. Run with seth chat for an interactive terminal session.
Built-in Tools
S.E.T.H. can use these tools autonomously during conversations:
| Tool | Description |
|------|-------------|
| desktop | Take screenshots (multi-monitor), list/focus/minimize windows, open apps, send keystrokes, get system info |
| browser | Launch Chrome with user profile, navigate URLs, click elements, type text, extract page content |
| bash | Execute shell/PowerShell commands |
| read_file | Read file contents |
| write_file | Create/overwrite files |
| edit_file | Modify existing files |
| list_dir | List directory contents |
| web_fetch | Fetch web pages |
| web_search | Search the web |
| linear | View and manage Linear issues |
| github | View GitHub repos and issues |
Architecture
┌─────────────┐ ┌─────────────┐
│ Telegram │──┐ ┌───▶│ Tools │
│ Discord │ │ ┌─────────────┐ │ │ (desktop, │
│ WhatsApp │──┼───▶│ Agent │───┤ │ browser, │
│ CLI │ │ │ (Claude) │ │ │ bash, etc) │
│ WebSocket │──┘ └──────┬──────┘ │ └─────────────┘
└─────────────┘ │ │
│ │ ┌─────────────┐
┌────────▼────────┐ └───▶│ Skills │
│ SQLite DB │ │ (calc, │
│ - Sessions │ │ datetime, │
│ - Messages │ │ reminders) │
│ - Memories │ └─────────────┘
│ - Preferences │
└─────────────────┘WebSocket API
Connect to ws://localhost:18789:
// Send
{ "type": "message", "content": "Hello!" }
// Receive
{ "type": "response", "content": "Hi! How can I help?" }License
MIT
Acknowledgments
Inspired by Clawdbot/OpenClaw
