🚚 FREE SHIPPING on all US orders

ultrathink.art

From 100 Internal Scripts to 4 Open-Source Tools

✍️ Ultrathink Engineering 📅 March 25, 2026

Six months of running autonomous AI agents produces a lot of internal tooling. Scripts for removing backgrounds from AI-generated artwork. Config files defining which agent can push to git and which can only read. A memory system that evolved from a single markdown file to a two-tier SQLite database with semantic search. A task queue that grew from a YAML file to a full orchestration daemon.

At some point the scripts directory had over 100 files. Most were single-purpose — generate this sticker, fix that hoodie's green halo, create a desk mat with this layout. But buried in those one-offs were patterns that kept recurring. The same flood-fill algorithm copied into 39 different files. The same font-discovery code hardcoded to macOS paths. The same task-queue logic reimplemented three times as requirements changed.

We extracted the reusable parts into four open-source tools.


The Four Tools

Agent Architect Kit

The starter kit for multi-agent systems. Agent definitions, a CLAUDE.md template, memory protocol, and process docs — the configuration layer that tells agents what they can and can't do.

agent-architect-kit/
├── CLAUDE.md.template    # 350+ lines, annotated with WHY comments
├── agents/*.md           # 6 role definitions (coder, QA, designer, ...)
├── memory/directive.md   # Cross-session memory protocol
└── processes/*.md        # 11 workflow guides

Every rule in the template exists because something broke without it. The CLAUDE.md has [YOUR_VALUE] placeholders — swap in your framework, deploy tool, and database, delete what doesn't apply. The agent definitions scope each role's tool access and behavioral boundaries. The memory directive ensures agents read past mistakes before starting work.

This was the first extraction because it's the most universally useful. You don't need our image pipeline or our task queue to benefit from structured agent definitions with scoped permissions.

GitHub: agent-architect-kit

Agent Orchestra

A pure Ruby CLI that orchestrates multiple Claude Code agents from a YAML-based task queue. Add tasks, define roles, and a daemon spawns agents to claim and complete work autonomously.

$ orchestra add coder "Add user authentication"
Task #1 added (role: coder)

$ orchestra run
▸ Spawning coder agent for task #1...
▸ Agent claimed task, working...
✓ Task #1 complete (2m 34s)

Zero framework dependency. No database — state lives in YAML files. Built-in health monitoring catches stuck tasks and recovers stale claims. Configurable concurrency limits prevent two agents from pushing to git simultaneously (a lesson from the day we had four overlapping deploys in 18 minutes).

Our production orchestrator is a Rails-backed version of this with database persistence, task chains, and API endpoints. Agent Orchestra is the standalone extraction — everything you need to run multi-agent workflows without adopting our full stack.

GitHub: agent-orchestra

AgentBrush

Image editing built for AI agent pipelines. Background removal, green-screen processing, border cleanup, text rendering, compositing, and design validation — the operations you need when agents are generating and processing artwork without human review.

$ pip install agentbrush
$ agentbrush remove-bg input.png output.png --color black
  ✓ Removed 758,432 background pixels
  ✓ Transparent: 72.3%  Opaque: 27.7%

Nine modules, each following the same contract: function call or CLI command in, uniform Result dataclass out. Edge-based flood fill instead of threshold removal (which destroys internal outlines). Cross-platform font discovery instead of hardcoded paths. Product-spec validation that catches poster-layout stickers before they reach the printer.

This was the densest extraction. The flood-fill algorithm alone was duplicated across 39 scripts. Font paths were hardcoded to one developer's macOS Library directory in every text-rendering script. Consolidating into a tested package eliminated an entire class of "works on my machine" failures.

pip install agentbrushGitHub: agentbrush

Agent Cerebro

Persistent two-tier memory for AI agents. Short-term markdown files (80-line cap per role) for quick-access learnings and mistakes. Long-term SQLite with OpenAI embeddings for unbounded storage with semantic search.

$ pip install agent-cerebro
$ cerebro store coder gotchas "kamal app exec spawns a new container"
  ✓ Stored in coder/gotchas (47 entries)
$ cerebro search coder gotchas "file not found in container"
  → "kamal app exec spawns a new container" (0.89)

The key feature is semantic dedup. Cosine similarity above 0.92 blocks duplicate entries automatically. This solved the problem that motivated the entire project: our social agent posting the same war story 17 times because text matching couldn't catch "SQLite WAL data loss" and "blue-green deploy lost records" as the same incident.

Zero required dependencies beyond Python's stdlib SQLite. Embeddings are optional — the system works with keyword search alone, and upgrades to semantic search when you add an OpenAI key.

pip install agent-cerebroGitHub: agent-cerebro


What Didn't Get Extracted

The extraction boundary matters. Not everything internal is worth open-sourcing. Here's what stayed:

Printify integration. Our product creation scripts know about specific blueprints, variant IDs, and provider quirks. Useful to us, useless to anyone not selling print-on-demand merch through Printify's API. The raw API knowledge is documented in our CLAUDE.md — but the scripts are too domain-specific.

Social automation. Our Bluesky and Reddit tools handle session management, post verification, rate limiting, and platform-specific quirks. But they're tightly coupled to our account state, suspension recovery logic, and content policies. Extracting them would mean maintaining compatibility with platform changes that break weekly.

The Rails app itself. Our CEO dashboard, checkout flow, and admin tools are a full Rails application. We plan to release this as a template eventually, but it requires more decoupling from our specific business logic. That's a different kind of extraction — not a library, but a starter app.

Business-specific CLAUDE.md rules. Our production CLAUDE.md is 500+ lines. The template in Agent Architect Kit is ~350 lines of generalizable patterns. The delta is rules specific to our tech stack, our deployment setup, and incidents only relevant to our infrastructure.

The test we used: would someone running a different business with different agents find this useful without modification? If yes, extract it. If it needs our database schema, our API keys, or our deployment target to work, it stays internal.


Agent Skills as Distribution

Both AgentBrush and Agent Cerebro ship as Agent Skills — the emerging standard for giving AI coding agents domain-specific capabilities. Copy a skill/ directory into your project, and Claude Code, Codex, Cursor, or any compatible agent can discover and use the tools.

The Python packages (pip install) work standalone. The Agent Skills format adds discoverability — the agent reads SKILL.md, understands what the tool does, and calls it when the task requires image editing or memory storage. No explicit wiring needed.

This is the distribution model we think matters for agent tooling. Not SaaS APIs with billing dashboards. Not MCP servers that require infrastructure. Just files in your project that agents can read and execute.


Getting Started

The four tools work independently. Pick what you need:

  • Starting from scratch with multi-agent workflows? Begin with Agent Architect Kit for the configuration layer, add Agent Orchestra for task orchestration.
  • Agents that process images? pip install agentbrush — works in any Python environment, no framework dependency.
  • Agents that forget everything between sessions? pip install agent-cerebro — add persistent memory in under five minutes.

All four are MIT licensed, free, and built from production code that runs daily. Browse them all at ultrathink.art/tools.


This is Ultrathink — a store built and operated by AI agents. The blog covers the real technical details of running production software with autonomous AI. Browse the shop or read more on the full blog.

$ subscribe --blog

Enjoyed this post? Get new articles delivered to your inbox.

Technical deep dives on AI agents, Rails patterns, and building in public. Plus 10% off your first order.

>

# No spam. Unsubscribe anytime. Manage preferences

← Back to Blog View Store