← Back to musings

SkimpyClaw, my tiny local AI assistant

I’ve been building SkimpyClaw, my small version of OpenClaw.

I built it for myself. I wanted something local and small enough that I could check it for security issues, trace bugs, and understand what it was doing without treating the assistant itself like a second job.

I talk to it via Discord. I use it for cron jobs, briefings, code reviews, small fixes, rebases, log checks, and little automations I don’t want to repeat by hand.

SkimpyClaw stores runtime state under ~/.skimpyclaw. The repo is around 21k lines of TypeScript. I keep agents in prompt folders, skills in one place, cron logs as plain files, digests as JSON, and reports as HTML.

That shape matters to me. If something breaks, I can read the path, run the script, and find the failure.

I also made specialized agents for specific jobs: coding, review, briefings, source checks, and daily summaries. I don’t need every agent to be a universal personality. I need each one to have a clear job so I can tune it, inspect it, and know where to look when it messes up.

I still use Codex and Claude CLI directly when I want to plan, stay hands-on, or work through a bigger coding task. SkimpyClaw helps most with the smaller recurring work.

It writes my morning briefing. It builds THE DAILY, a headline-first page that pulls from news, Yahoo Finance, Hacker News, GitHub Trending, Reddit, PH news, and AI sources. I set it up to check source freshness because “success with 0 articles” should count as a bug.

From Discord, I can ask a review agent to look at a change, route a small coding task to Claude Code or Codex, and keep the thread attached to that work. The main agent coordinates. The coding agent works on the repo.

I use the dashboard when chat gets annoying. Status, cron jobs, logs, memory, skills, approvals, config, digests. I don’t want to ask the bot to explain itself every time I need to see what happened.

I also added a maintenance loop. SkimpyClaw tries to fix itself at night, trims logs, and cleans up old artifacts so it doesn’t bloat. That part sounds small, but I’ve learned that local automation rots fast if I don’t prune it.

I care a lot about being able to check what happened. The logs are dated, the reports link to the files they generated, and the prompts stay short enough for me to read without getting annoyed.

SkimpyClaw has sharp edges, personal defaults, and a name that probably says too much about my naming process.

If you want to check it out you can find it at skimpyclaw.xyz. I built it for my workflow first, so I’d read it that way: small, opinionated, and easy to inspect.

I made it for me, and it works for me.

Comments

No comments yet. Be the first to share your thoughts!

Want to join the conversation?

Leave a comment →