Row-Bot
A local-first desktop assistant that combines models, durable memory, and controlled tools for personal work.
Per-dimension scores and reasoning
Evidence shows: README explicitly states local-first, data stays on machine by default, uses OS credential store and Docker encrypted volumes, emphasizes invitation/session separation, revocable sessions, strict origin checks, and optional Computer Use requires explicit consent. Deductions: dependency security only lists version ranges without vulnerability scanning or audit evidence; rollback only mentions recovery tools without specific mechanisms; publisher identity unverified, source attribution based only on repository metadata.
Evidence shows: README consistent with pyproject.toml, CI configures multi-platform tests and dependency verification, test files include guards preventing writes to live user state. Deductions: no specific failure message examples or error handling documentation, dependency availability only guaranteed by version ranges without runtime verification.
Evidence shows: README details multiple usage scenarios (local, providers, custom endpoints), explicitly lists capability boundaries (e.g., SMS text-only, Computer Use off by default), provides trigger examples (common prompts), and supports multiple platforms (Windows/macOS/Linux/Docker). Deductions: no detailed trigger conditions or environment configuration requirements, environment fit based only on claims.
Evidence shows: README well-structured, provides install instructions, quick start, remote access guide, naming stable (Row-Bot formerly Thoth), example prompts, known limitations explicit (e.g., SMS text-only, Computer Use off by default), license Apache-2.0. Deductions: no version history or changelog, maintenance responsibility only implied via SECURITY.md and CI, no explicit maintainer.
Evidence shows: README describes outputs as usable reports, action plans, and designs, provides video demos, emphasizes local-first and cost control (optional cloud models). Deductions: no performance benchmarks or user feedback, marginal value based only on feature list.
Evidence shows: README feature claims partially correspond to pyproject.toml dependencies and CI tests, but no specific test results or independent verification provided. Deductions: claims are mostly assertions without traceable test evidence, facts and inferences not clearly separated.
- Publisher identity unverified; verify source before installation.
- Dependency security lacks vulnerability scanning or audit evidence; review dependency versions.
- Rollback mechanism only mentions recovery tools without specific steps.
- Version history or changelog missing; proceed with caution before upgrading.
What does this agent do, and when should you use it?
Row-Bot is a local-first desktop AI assistant organized around reasoning, orchestration, and work across conversations, models, memory, and tools. Its execution layer includes a LangGraph ReAct agent, Goal Mode, Agent Profiles, and scoped child-agent delegation with visible goals, approvals, and local run history. The app combines a personal knowledge graph, document extraction, browser and shell access, workflows, messaging channels, Developer Studio, and Designer Studio. It can run with local Ollama models or opt-in providers including OpenAI, Anthropic, Google AI, xAI, OpenRouter, and custom OpenAI-compatible endpoints. It ships for Windows, macOS, and Linux, with authenticated single-owner remote access and a `row-bot serve` mode for browser-based server operation.
Row-Bot uses a LangGraph ReAct agent to assemble the active conversation, memory recall, and tool results into budgeted execution. It reads PDF, CSV, Excel, JSON, JSONL, TSV, and image files; extracts documents with source provenance; and stores or recalls knowledge through a personal graph. It can use Tavily, DuckDuckGo, Wikipedia, arXiv, YouTube transcripts, and URL reading for research, execute filesystem and shell actions in a configured workspace, and control a visible Chromium browser. Developer Studio links or clones Git workspaces, creates worktrees, shows diffs, runs tests, and prepares branches, commits, pushes, and PRs; Designer Studio produces decks, documents, landing pages, mockups, and exports. The row-bot serve command exposes session-gated browser access, while row-bot access invite creates one-time device invitations.
- A researcher working from PDFs, spreadsheets, and personal notes can extract source material into a knowledge graph and retrieve it in later conversations.
- A developer maintaining a repository can link or clone it in Developer Studio, use an isolated worktree, run tests, inspect diffs, and prepare Git changes under approval controls.
- An individual automating recurring work can build workflows with schedules, webhooks, completion triggers, conditions, approvals, and notifications.
- A single owner who wants access from a phone, tablet, or another computer can create an authenticated Remote Access invitation to the same running local instance.
- A user handling communications can authorize Gmail, Google Calendar, Telegram, WhatsApp, Discord, Slack, or SMS integrations for specific email, calendar, and messaging tasks.
- A privacy-focused user can run Ollama locally for inference while only opting into cloud or self-hosted endpoints when a task requires them.
What are this agent's strengths and limitations?
- Local-first storage covers conversations, the knowledge graph, workflows, and settings by default; the project states that Row-Bot has no account system or hosted inference middleman.
- It supports Ollama, custom compatible endpoints, multiple API providers, and in-app paths for ChatGPT/Codex, Claude Subscription, and xAI Grok.
- Knowledge management, Git worktrees, browser automation, workflows, and channel messaging are coordinated through shared goal, approval, and execution-budget controls.
- Remote access is designed for one owner with single-use invitations, revocable sessions, hashed local credentials, and session-gated browser access.
- Local inference requires Ollama; the documented recommendation for stronger agent behavior is a 14B-class model and 16–32 GB RAM or suitable GPU, which can raise hardware costs.
- Cloud models, search, email, calendar, channels, and media generation depend on provider credentials, OAuth, or network access; selected conversation and tool context are sent to the chosen endpoint.
- Computer Use is an opt-in beta limited to interactive local Windows and macOS sessions, requiring Cua Driver installation and OS permissions; it does not support Linux or background use.
- Users migrating from Thoth or an early Row-Bot build must first launch a prior migration-capable release because the current startup path no longer performs the old rebrand migration.
- Server, reverse-proxy, and Docker deployments require the operator to manage TLS, trusted proxies, backups, rate limiting, and firewall policy.
How do you install or deploy this agent?
Source installation requires Python 3.12+. Install Ollama first only if you want local models; provider-only and custom-endpoint setups can skip it. Run:
git clone https://github.com/siddsachar/row-bot.git
cd row-bot
python -m venv .venv
source .venv/bin/activate
python -m pip install "uv>=0.7,<1.0"
uv sync --locked --all-extras --group test
uv run python launcher.pyOn Windows, activate with .venv\Scripts\activate. Alternatively, download the Windows installer or macOS DMG from GitHub Releases. On Linux, run curl -fsSL https://raw.githubusercontent.com/siddsachar/row-bot/main/installer/install-linux.sh | bash. In the first-run wizard, select Ollama, a provider, or a custom OpenAI-compatible endpoint; cloud features require the corresponding API key or in-app OAuth sign-in.
How do you use this agent?
After launch, choose a model path in the setup wizard: select Ollama and a model for local use; enter credentials such as OPENAI_API_KEY or ANTHROPIC_API_KEY for a supported provider; or enter a compatible self-hosted endpoint such as http://127.0.0.1:1234/v1. Then send a task such as “Read report.pdf in my workspace” or “Run git status on my project.” For larger work, create a Goal, choose an Agent Profile, and delegate a bounded child task. For headless operation, run uv run python launcher.py serve --port 8080, or use row-bot serve in an installed build; create a browser invitation with row-bot access invite --layout desktop --origin https://row-bot.example.com.
How does this agent compare with similar options?
Compared with using Ollama alone for local inference, Row-Bot adds provider-qualified cloud and OpenAI-compatible endpoint paths while preserving model capability and fallback status. Compared with browser automation, native Computer Use targets local Windows/macOS applications but requires separate installation and consent; the project identifies browser automation as the preferred website mechanism. Docker Sandbox differs from direct local execution by working in a shadow workspace that must be explicitly imported before it changes the real repository.