Back to Blog
I Built a Self-Hosted AI Agent That Runs on a Raspberry Pi

I Built a Self-Hosted AI Agent That Runs on a Raspberry Pi

April 24, 20267 min read

Most AI coding tools live in someone else's cloud. Cursor, Devin, GitHub Copilot: useful, but your context and conversations flow through a third-party server. For some teams that's fine. For others it's a non-starter.

I wanted an AI agent engine I could deploy on my own hardware, connect to whatever model I wanted, and extend without waiting for a vendor to ship the feature. So I built profClaw.


The problem with the current landscape

There are roughly two categories of AI dev tools right now:

Cloud-only agents (Cursor, Devin, Claude Code web, Copilot Chat): polished and easy to start, but you're locked into their infra, their model selection, and their pricing. No offline mode, no control over what gets logged.

Single-purpose CLIs (Aider, shell wrappers around OpenAI): simpler and self-hosted, but narrow. They do one thing, usually code editing, and don't compose well with the rest of your workflow.

profClaw sits in a different spot: a self-hosted, multi-provider agent engine with a proper TUI, a task queue, multi-agent orchestration, and integrations across 22 chat platforms.


What profClaw actually is

profClaw is a Node.js agent runtime you install and run yourself. Here's the short version of what it ships with:

  • 35 AI providers: Anthropic, OpenAI, Google, Ollama, Groq, DeepSeek, Bedrock, Azure, xAI, OpenRouter, Together, Fireworks, Mistral, LM Studio, and 21 more. Switch between them per-task, not per-account.
  • 72 built-in tools: file operations, git, browser automation, cron scheduling, web search, canvas, voice I/O — all available to agents without writing glue code.
  • 50 skills (slash commands): /commit, /review-pr, /deploy, /summarize, /web-research, /analyze-code, /ticket, /image, and more. These are composable, repeatable agent workflows you run with a single command.
  • 22 chat channels: Slack, Discord, Telegram, WhatsApp, iMessage, Matrix, Teams, Google Chat, Signal, and 13 more. Your agent can receive tasks from wherever your team already works.
  • MCP server: connects profClaw as a tool provider to Claude Desktop, Cursor, or any MCP-compatible client.
  • Voice I/O: Whisper for speech-to-text, ElevenLabs or OpenAI TTS for responses, plus a Talk Mode for hands-free use.
  • REST API + headless mode: for CI/CD pipelines and scripting.
  • Plugin SDK: extend with third-party plugins via npm.

The task queue is backed by BullMQ with dead-letter queues, retry logic, and priority scheduling — not an in-memory queue that drops work if the process restarts.

Cost tracking is built in. You can set per-token budgets per provider and get alerts when you're approaching limits.


The TUI

The interactive terminal UI is where most of my daily use happens. Streaming markdown with syntax highlighting, a slash command picker, a live model selector, and a tool execution panel that shows what the agent is doing in real time.

┌─────────────────────────────────────────────────────────────────┐
│  profClaw  [claude-sonnet]  [tools: 72]  [$0.0023 / $5.00]     │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  > /review-pr 142                                                 │
│                                                                   │
│  Fetching PR #142...                                              │
│  ✓ git fetch origin pull/142/head                                 │
│  ✓ git diff main...FETCH_HEAD (847 lines)                        │
│  Running analysis...                                              │
│                                                                   │
│  ## PR Review: feat/user-auth                                     │
│                                                                   │
│  **Risk: Medium**                                                 │
│                                                                   │
│  The JWT signing key is read from `process.env.SECRET` without   │
│  a fallback check. If the env var is missing in production...     │
│                                                                   │
├─────────────────────────────────────────────────────────────────┤
│  [/] commands  [tab] models  [ctrl+t] tools  [ctrl+v] voice      │
└─────────────────────────────────────────────────────────────────┘

Enter fullscreen mode Exit fullscreen mode

You can switch models mid-conversation without losing context. The tool panel on the right shows tool calls as they execute so you can see exactly what the agent is doing.


The Raspberry Pi angle

This is the part people find surprising. profClaw has three deployment modes:

Mode

RAM

Use case

Pico

~140MB

Raspberry Pi Zero 2W, $5 VPS, constrained environments

Mini

~145MB

General low-resource use

Pro

Full

All features enabled

Pico mode runs the core agent loop, tool execution, and API — just without some of the heavier integrations. It fits on a Raspberry Pi Zero 2W with headroom to spare. I run a personal instance on a Pi 4 that handles Slack messages from my team and runs scheduled git tasks overnight.

It also runs on old laptops, Docker, and Android phones via Termux if you want to go that route.


Concrete usage examples

Install and start chatting:

npm install -g profclaw
profclaw init
profclaw chat --tui

Enter fullscreen mode Exit fullscreen mode

One-liner install:

curl -fsSL https://raw.githubusercontent.com/profclaw/profclaw/main/install.sh | bash

Enter fullscreen mode Exit fullscreen mode

Docker:

docker run -it --rm \
  -v ~/.profclaw:/root/.profclaw \
  ghcr.io/profclaw/profclaw:latest chat --tui

Enter fullscreen mode Exit fullscreen mode

Run a skill from the CLI:

profclaw run /review-pr 142
profclaw run /web-research "best practices for database connection pooling in 2025"
profclaw run /summarize --file ./meeting-notes.txt

Enter fullscreen mode Exit fullscreen mode

Headless for CI/CD:

profclaw exec --prompt "Analyze test failures in the last run and open issues for regressions" \
  --provider anthropic --model claude-sonnet-4-5 --no-tty

Enter fullscreen mode Exit fullscreen mode

Multi-agent routing — profClaw can route subtasks to different models based on capability scoring. Send the cheap fast model to handle file reads and the stronger model to handle reasoning:

profclaw chat --tui --orchestrate

Enter fullscreen mode Exit fullscreen mode


How it compares

Tool

Self-hosted

Multi-provider

TUI

Chat channels

Task queue

profClaw

Yes

35 providers

Yes

22

BullMQ

Claude Code

No

No

Yes (basic)

No

No

Cursor

No

Limited

No (editor)

No

No

Aider

Yes

Yes

No

No

No

Devin

No

No

No

Limited

No

Aider is the closest comparison — open source, works with multiple providers, self-hosted. The differences: profClaw has a full TUI, chat channel integrations, the task queue, voice I/O, the plugin SDK, and the MCP server. Aider is focused on code editing. profClaw is trying to be a general-purpose agent runtime.

Claude Code is the strongest single-session coding agent I've used. But it requires Anthropic's API, doesn't run a persistent server, and doesn't integrate with Slack or your other tooling. profClaw isn't trying to beat it at pair programming. It's trying to be the agent infrastructure layer that ties everything together.


Architecture notes

Under the hood:

  • Runtime: Node.js, TypeScript
  • Task queue: BullMQ (Redis-backed)
  • MCP: Model Context Protocol server for tool exposure to external clients
  • Plugin system: npm packages with a defined SDK — install a plugin, it registers its tools and skills automatically
  • Storage: local-first, your data stays on disk unless you configure otherwise
  • License: AGPL-3.0

The multi-agent orchestration layer scores tasks by required capability (reasoning depth, tool use, context length) and routes to the configured model that best fits. You define the model pool; profClaw handles routing.


Current state

This is an early open-source release. The core loop is stable — I use it daily. Some integrations are more polished than others. The plugin SDK is functional but the documentation is still thin.

If you run into issues, the GitHub issues tracker is the right place. There's also a Discord if you want to ask questions or share what you're building with it.


Getting started

npm install -g profclaw && profclaw init && profclaw chat --tui

Enter fullscreen mode Exit fullscreen mode

If you're building something with it or have questions, drop them in the comments or open an issue.


Source: Dev.to

Related Posts