Soul-driven
AI agent
AI agent built for control: permissioned tools, safe execution, token budgets, and multi-channel access.
Sees your screen. Controls your desktop. Runs 24/7 from CLI, Telegram, WhatsApp, or REST API.
Or: npm i -g tota-agent
tota always asks before it acts
Built different
Every AI agent can read files and run commands. Most do it silently. tota asks first — and remembers what matters.
Local Web UI
Browser-based dashboard at http://127.0.0.1:3001. Chat, memory browser, scheduler, skills, live logs, and settings — all local, no cloud. Just run `tota ui`.
Permission-Hardened
Shell blocklist blocks 24 dangerous patterns. Folder-level filesystem scoping. Per-session modes: Ask Me or Allow All. No silent execution — ever.
Second Brain
SQLite + FTS5 persistent memory. 10 memory types — identity, preferences, goals, habits, and more. Auto-extracts 0–3 facts per conversation. Fully local.
Soul-Driven
Personality defined by 4 markdown files you own in ~/.tota/soul/. Customize identity, persona, taste, and heartbeat. No corporate AI wrapper.
Token-Aware
Daily token budget with enforcement. Auto-concise mode kicks in at 70% usage. /budget command to check status, reset, override, or change the limit.
Live Streaming
Real-time markdown rendering on CLI with ANSI colors and step tracking. Telegram gets editable messages with live typing indicators.
Always On
Daemon mode with PID management and crash recovery. System service: macOS LaunchAgent, Linux systemd, Windows Task Scheduler. All without sudo.
Web Search
Built-in web_search tool with Brave, Serper, and Tavily support. Auto-detects provider from env keys. Search results formatted as numbered markdown.
Vision
Analyze local images or image URLs with analyze_image. Auto-detects MIME type from magic bytes. Works with any provider that has vision support.
Code Sandbox
Execute Python, JavaScript, Bash, TypeScript, Ruby, and Go in an isolated temporary sandbox via run_code. Output capped at 8,000 chars. Auto-cleanup.
Task Delegation
delegate_task spawns a focused sub-agent for complex sub-tasks and returns the result. Enables multi-step autonomous workflows without losing context.
MCP Plugins
Connect any Model Context Protocol server over HTTP. Tools appear instantly as mcp_<server>_<tool>. Any JSON-RPC MCP server is supported.
REST API Channel
Control tota programmatically via HTTP. POST /message, GET /status. Optional bearer-token auth. Runs alongside CLI and Telegram on a configurable port.
Extensible Skills
Install community skills with one command. Skills are markdown-based SKILL.md files with elevated permissions. Schedule them as recurring cron tasks.
Secrets Vault
Store API keys and tokens in the OS keychain (macOS Keychain, GNOME Keyring, Windows Credential Manager) with AES-256-GCM encrypted file fallback.
Desktop Notifications
Send native desktop notifications from macOS, Linux, or Windows. Perfect for long-running tasks — get pinged when the job is done.
Clipboard
Read from and write to the system clipboard. Copy results, paste context, and pipe data in both directions without leaving the conversation.
Voice TTS / STT
Text-to-speech via OpenAI TTS-1 and speech-to-text via Whisper. Telegram voice messages are auto-transcribed before reaching the agent.
Google Calendar
List, create, and delete events. Check free/busy availability. Full OAuth2 flow built in — no external server needed, just paste the auth code.
Browser Automation
26 browser_* tools powered by Playwright. Click, type, scroll, hover, drag, evaluate JS, manage cookies and storage, export to PDF, set viewport, and switch between Chromium, Firefox, and WebKit engines.
Computer-Use
See and control your desktop with 9 computer_* tools. Screenshot, semantic vision (find-by-description), click, move, type, key-press, scroll, drag, and read screen dimensions — cross-platform.
Android Control
10 adb_* tools for Android automation. Screenshot, vision, tap, swipe, type, key events, shell commands, and bidirectional file transfers — no root required, just ADB.
Multi-Agent Crew
Spawn specialized sub-agents (researcher, coder, reviewer) with scoped tool access and independent context. Coordinate complex workflows in parallel.
Up in minutes
From zero to a 24/7 AI agent in under a minute.
Install
One command — no Docker, no config files, no cloud signup.
Configure
30-second wizard. Enter your name, choose a provider, optionally add a Telegram bot token.
Chat naturally
Ask it to check git, write code, browse a URL, schedule a reminder, or anything else. tota asks before it acts.
Run 24/7
One command installs the system service, starts the daemon, and confirms everything is running.
11 providers. Automatic fallback.
Configure multiple LLM providers and tota tries them in order, remembering the last successful one. One provider goes down? Another picks up seamlessly.
deepseek-chatDefault · Cost-effective
gpt-4o-miniGPT-4o, o3, gpt-5
claude-sonnet-4Claude Sonnet, Opus
grok-4OpenAI-compatible
gpt-oss:120bRemote hosted
qwen3.5:2bNo API key needed
mimo-v2.5-proXiaomi · China-optimized
CustomAny compatible endpoint
mimo-v2.5-proToken-based pricing
nemotron-3-super-120b262k ctx · 100s of models
openrouter/auto300+ models · One API key
Fallback chain
Configurable order · Tries last successful provider first · Set DEFAULT_PROVIDER to override
Second Brain
A persistent, structured memory that grows with every conversation. SQLite + FTS5 under the hood. Everything stays on your machine.
10 Memory Types
How it works
Higher-confidence memory wins. Opposing facts auto-resolved. Memories reinforced 3× promoted to durable scope.
All memory data stays in ~/.tota/. Nothing leaves your machine.
Manage via /memory
OverviewRecentSearchPauseResumeClearIntegrations
Native GitHub tooling, Telegram bot, WhatsApp, REST API, and MCP plugins — all first-class.
GitHub Companion
5 tools · activated when GITHUB_TOKEN is set
create_prCreate pull requests from conversationreview_prFetch diff and post review commentslist_issuesFilter issues by state, label, assigneecreate_issueCreate issues with labels and assigneesgithub_apiRaw access to any GitHub API endpointCo-authored commits — Every commit tota makes appends Co-authored-by: tota <tota@github.com> automatically.
Telegram Bot
Private chats · Admin + member roles · Pairing-code access
Live response editing with typing indicators
Photos, audio, video, documents auto-detected
Approve shell commands and scope requests in-chat
Admin/member roles with pairing-code flow
Groups and channels always ignored
Access model
WhatsApp Channel
No Business API · Scan QR to link · Phone allowlist
Links via WhatsApp Web — no Meta account needed
Messages from unknown numbers are queued for approval
Live typing indicators with chunked message delivery
Send images and documents; tota reads and responds
Reconnects on network drops; persists auth between restarts
tota setup whatsapp tota whatsapp link tota start
REST API Channel
HTTP control · Bearer-token auth · Port 3001 (configurable)
/statusCheck if agent is running and ready/messageSend a message, receive a responsePOST /message
{ "content": "What time is it?" }
← { "response": "It's 3:14 PM UTC." }
Enable — set API_CHANNEL_ENABLED=true in ~/.tota/.env
MCP Plugins
Model Context Protocol · HTTP JSON-RPC · Auto-registered at startup
JSON-RPC tools/list + tools/call over HTTP
mcp_<server>_<tool> — no naming conflicts
Per-server apiKey forwarded automatically
Tools registered alongside built-ins
Unavailable servers logged and skipped
~/.tota/tota.yaml
mcp:
servers:
- name: my-tools
url: http://localhost:8080/mcp
enabled: trueTool naming — tools from server my-tools appear as mcp_my-tools_<name>
Ready to start?
Node.js 20+ required. First run takes about 30 seconds.
# Install globally $ npm i -g tota-agent # Or try without installing $ npx tota-agent # First run — 30s setup wizard $ tota # Open the local web UI $ tota ui # Run as a 24/7 background daemon $ tota up