All configuration and data is stored in ~/.tota/.

File / DirectoryDescription
~/.tota/config.jsonMain config: agent name, user name, providers, models, Telegram token
~/.tota/tota.yamlExtended config: loop guard, web search, MCP servers, API channel
~/.tota/.envAPI keys and tokens (sourced automatically)
~/.tota/memory/SQLite Second Brain database and FTS index
~/.tota/daemon.pidPID of the running background daemon
~/.tota/daemon.logBackground mode logs (last 1000 lines kept, then rotated)
~/.tota/daemon-error.logError log for the daemon process (macOS LaunchAgent only)
~/.tota/skills/Installed custom skill directories
~/.tota/tasks.jsonPersisted scheduled tasks

Nothing is stored in your project directory. You can delete ~/.tota/ to start completely fresh.

Web Search

Env VarDescriptionDefault
WEB_SEARCH_ENABLEDEnable the web_search tooltrue
WEB_SEARCH_PROVIDERbrave, serper, tavily, or autoauto
WEB_SEARCH_MAX_RESULTSMax results returned (1–10)5
BRAVE_API_KEYBrave Search API key
SERPER_API_KEYSerper API key
TAVILY_API_KEYTavily API key

When WEB_SEARCH_PROVIDER=auto, tota picks whichever key it finds first (Brave → Serper → Tavily).

REST API Channel

Env VarDescriptionDefault
API_CHANNEL_ENABLEDEnable the HTTP API channelfalse
API_CHANNEL_PORTPort to listen on3001
API_CHANNEL_KEYOptional 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 VarDescriptionDefault
BROWSER_ENGINEDefault engine: chromium, firefox, or webkitchromium
PLAYWRIGHT_HEADLESSSet to true to run without a visible windowfalse
ToolDescription
browser_openOpen a URL in the browser (visible window by default)
browser_clickClick an element (selector or visible text)
browser_typeType text into an input field (SPA-safe)
browser_keyPress a keyboard key (Enter, Tab, Escape, combos)
browser_waitWait for a CSS selector or navigation
browser_screenshotCapture the current page
browser_extractExtract text / attributes via CSS selector
browser_scrollScroll up, down, left, or right
browser_closeClose the shared browser instance
browser_engineSwitch engine to chromium, firefox, or webkit

Computer-Use (Desktop + Android)

Env VarDescriptionDefault
COMPUTER_USE_ENABLEDEnable computer-use and Android ADB toolsfalse

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.

ToolDescription
computer_screenshotCapture the full screen or a region
computer_seeScreenshot + vision AI analysis in one step
computer_clickLeft, right, or double-click at (x, y)
computer_moveMove cursor to (x, y)
computer_typeType text at the current keyboard focus
computer_keyPress a key or combo (cmd+c, ctrl+z, enter, etc.)
computer_scrollScroll at a position
computer_dragClick and drag between two coordinates
computer_screen_sizeGet display resolution

Android tools (ADB)

Requires adb in your PATH and a connected device or emulator.

ToolDescription
adb_devicesList connected Android devices
adb_screenshotTake a screenshot of an Android device
adb_seeAndroid screenshot + vision AI analysis
adb_tapTap at (x, y) on the device
adb_swipeSwipe between two points
adb_typeType text into the focused field
adb_keySend key event (3=HOME, 4=BACK, 66=ENTER…)
adb_shellRun any adb shell command
adb_pullPull a file from the device
adb_pushPush a local file to the device

Loop Guard

Env VarDescriptionDefault
LOOP_MAX_STEPSMax agentic steps per request50
LOOP_ABSOLUTE_MAXHard cap on total tool calls100
LOOP_FAILED_ABSOLUTE_MAXStop after this many failed calls25
LOOP_IDENTICAL_THRESHOLDConsecutive identical calls before warning5
LOOP_SIMILAR_THRESHOLDConsecutive failing calls before warning8
LOOP_SAME_TOOL_THRESHOLDConsecutive same-tool calls before warning10
LOOP_NO_ACTION_MAXSteps with no tool calls before stopping10
LOOP_TEXT_REPEAT_THRESHOLDRepeated step texts before warning3

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.