All configuration and data is stored in ~/.tota/.
| File / Directory | Description |
|---|---|
~/.tota/config.json | Main config: agent name, user name, providers, models, Telegram token |
~/.tota/tota.yaml | Extended config: loop guard, web search, MCP servers, API channel |
~/.tota/.env | API keys and tokens (sourced automatically) |
~/.tota/memory/ | SQLite Second Brain database and FTS index |
~/.tota/daemon.pid | PID of the running background daemon |
~/.tota/daemon.log | Background mode logs (last 1000 lines kept, then rotated) |
~/.tota/daemon-error.log | Error log for the daemon process (macOS LaunchAgent only) |
~/.tota/skills/ | Installed custom skill directories |
~/.tota/tasks.json | Persisted scheduled tasks |
Nothing is stored in your project directory. You can delete ~/.tota/ to start completely fresh.
Web Search
| Env Var | Description | Default |
|---|---|---|
WEB_SEARCH_ENABLED | Enable the web_search tool | true |
WEB_SEARCH_PROVIDER | brave, serper, tavily, or auto | auto |
WEB_SEARCH_MAX_RESULTS | Max results returned (1–10) | 5 |
BRAVE_API_KEY | Brave Search API key | — |
SERPER_API_KEY | Serper API key | — |
TAVILY_API_KEY | Tavily API key | — |
When WEB_SEARCH_PROVIDER=auto, tota picks whichever key it finds first (Brave → Serper → Tavily).
REST API Channel
| Env Var | Description | Default |
|---|---|---|
API_CHANNEL_ENABLED | Enable the HTTP API channel | false |
API_CHANNEL_PORT | Port to listen on | 3001 |
API_CHANNEL_KEY | Optional bearer token for auth | — |
Browser Automation
Browser tools work out of the box — no API keys needed. Install browser binaries once:
npx playwright install chromium firefox webkit
# or via the wizard:
tota setup browser
| Env Var | Description | Default |
|---|---|---|
BROWSER_ENGINE | Default engine: chromium, firefox, or webkit | chromium |
PLAYWRIGHT_HEADLESS | Set to true to run without a visible window | false |
| Tool | Description |
|---|---|
browser_open | Open a URL in the browser (visible window by default) |
browser_click | Click an element (selector or visible text) |
browser_type | Type text into an input field (SPA-safe) |
browser_key | Press a keyboard key (Enter, Tab, Escape, combos) |
browser_wait | Wait for a CSS selector or navigation |
browser_screenshot | Capture the current page |
browser_extract | Extract text / attributes via CSS selector |
browser_scroll | Scroll up, down, left, or right |
browser_close | Close the shared browser instance |
browser_engine | Switch engine to chromium, firefox, or webkit |
Computer-Use (Desktop + Android)
| Env Var | Description | Default |
|---|---|---|
COMPUTER_USE_ENABLED | Enable computer-use and Android ADB tools | false |
Or in ~/.tota/tota.yaml:
capabilities:
computer:
enabled: true
Enable via wizard: tota setup computer
Desktop tools (macOS, Linux, Windows)
Uses @nut-tree-fork/nut-js. On Linux, first run sudo apt install libxtst-dev.
| Tool | Description |
|---|---|
computer_screenshot | Capture the full screen or a region |
computer_see | Screenshot + vision AI analysis in one step |
computer_click | Left, right, or double-click at (x, y) |
computer_move | Move cursor to (x, y) |
computer_type | Type text at the current keyboard focus |
computer_key | Press a key or combo (cmd+c, ctrl+z, enter, etc.) |
computer_scroll | Scroll at a position |
computer_drag | Click and drag between two coordinates |
computer_screen_size | Get display resolution |
Android tools (ADB)
Requires adb in your PATH and a connected device or emulator.
| Tool | Description |
|---|---|
adb_devices | List connected Android devices |
adb_screenshot | Take a screenshot of an Android device |
adb_see | Android screenshot + vision AI analysis |
adb_tap | Tap at (x, y) on the device |
adb_swipe | Swipe between two points |
adb_type | Type text into the focused field |
adb_key | Send key event (3=HOME, 4=BACK, 66=ENTER…) |
adb_shell | Run any adb shell command |
adb_pull | Pull a file from the device |
adb_push | Push a local file to the device |
Loop Guard
| Env Var | Description | Default |
|---|---|---|
LOOP_MAX_STEPS | Max agentic steps per request | 50 |
LOOP_ABSOLUTE_MAX | Hard cap on total tool calls | 100 |
LOOP_FAILED_ABSOLUTE_MAX | Stop after this many failed calls | 25 |
LOOP_IDENTICAL_THRESHOLD | Consecutive identical calls before warning | 5 |
LOOP_SIMILAR_THRESHOLD | Consecutive failing calls before warning | 8 |
LOOP_SAME_TOOL_THRESHOLD | Consecutive same-tool calls before warning | 10 |
LOOP_NO_ACTION_MAX | Steps with no tool calls before stopping | 10 |
LOOP_TEXT_REPEAT_THRESHOLD | Repeated step texts before warning | 3 |
MCP Servers (tota.yaml)
mcp:
servers:
- name: my-tools
url: http://localhost:8080/mcp
enabled: true
apiKey: optional-bearer-token
Each server must implement the Model Context Protocol JSON-RPC tools/list and tools/call methods over HTTP.
