coletebou@term:~

whoami

Cole Tebou

AI Software Engineer · Badland · Washington, D.C.

I build the tooling for running a fleet of coding agents: a control plane that sees every Claude Code and Codex session on every machine, one memory they all share, and the environment underneath them. On top of it I run Badland: a personal AI agent you text over iMessage, SMS and Telegram, and a chat app that puts three AIs on one prompt, side by side.

Type help, ls or open drover. The same work is also in the almanac and the plan set.

ls

  • A1droverOperatedA control plane for every coding agent you run, on every machine you run them on.
  • A2badland-brainOperatedOne shared, self-hosted memory for Claude Code, Codex, ChatGPT and any MCP client.
  • A3dxOperatedDotfiles for running fleets of coding agents.
  • A4porchlightOperatedA fast, fleet-aware login dashboard for your terminal.
  • A5grok-bot-backupBetaBack up every Grok Bot, routine and skill to git as plain files.
  • B4badland-lineLiveText your Grok Bot from any phone over SMS.
  • B1badlandLiveOne coherent chat surface for four frontier-model families, voice, images, files, web research, councils and concise briefings.
  • B2agent-platformBetaPersistent personal agents you text over iMessage, SMS and Telegram, with isolated tenants, memory, tools, reminders and artifact creation.
  • B3agent-runtimeOperatedThe runtime beneath the personal agents: tenant provisioning, tool boundaries, routing, observability and recovery.
  • P1tideBuildingA native Swift code editor for iPad and iPhone in the spirit of VS Code: the workbench, shortcuts, Quick Open and themes, rebuilt without a web view.
  • P2airspace-labPrototypeOrbit, slice and probe U.S. terminal airspace in 3D instead of memorizing a sectional.
  • P4sunnydayzLiveA storefront with its own operations desk: import, margin rules, ad copy and Stripe checkout.
  • P3tallgrassLiveDiscover, identify and share the natural world: web, API and an iOS app.
  • P5macroosLiveA macroeconomics dashboard with FRED series and scenarios.
  • P6starheartLiveA Christian AI initiative: intelligence in service of the Creator.
  • P7setlineBetaA gym-aware training log and coach, with video form feedback.
  • P8undertoneBetaA live music studio and editable sketchbook on Lyria RealTime.
  • P9respondeoBuildingA Catholic companion: answers from Scripture, Tradition and the Magisterium, every citation checked.
  • P10altivolusBuildingAn aviation platform: an E6B, ground school you fly, tracks, live ATC and decoded weather.
  • P11ai-cliOperatedOne prompt to Claude, GPT, Gemini, Grok and OpenRouter, side by side, streaming.
  • A6ai-keysPrototypeOne CLI to create, list, revoke and distribute API keys across AI providers.
  • P12voice-agentPrototypeA Raspberry Pi voice assistant: local wake word, a full-duplex realtime model, and barge-in.
  • M1not-a-numberCompleteAn original AI-culture music video, made with Blender and a simulation pipeline.
  • E1excitoPrototypeEarthquake ground-motion spectral matching: a modernized RSPMatch behind a Python command line, with a GUI and plots.
  • U1upstreamOngoingPull requests merged into other people's projects: 72 to ooxml and 10 across OpenClaw's projects.

25 works. open <id> for one; ls <group> for fleet, platform, product, engineering, media, upstream.

open drover

Drover The control plane · open source

A control plane for every coding agent you run, on every machine you run them on.

status
Operated · Open source since October 2026
stack
Node 24SwiftMCPtmux
code
github.com/coletebou/drover
license
Apache-2.0
since
2026-10-23
also in
the almanacthe plan set

Every Claude Code session, Codex thread and Grok bot on every host, in three lanes: waiting on you, working, idle. Answer, message and launch them from a browser, a terminal, a Mac, an iPhone, a watch or a browser extension. One daemon per machine, zero npm dependencies, no open ports.

§ What it sees

A daemon on each machine watches the coding agents running there: Claude Code sessions, Codex threads, Grok bots and an OpenClaw fleet manager. Together they sort every agent on every host into three lanes, so the one waiting on you is never buried under the ones still working.

§ Where you drive it

The same fleet is reachable from a web UI, a terminal UI, an MCP server that other agents can call, Mac, iPhone and watch apps, and browser extensions. You can answer an agent, message it as if you typed into its pane, or launch a new one on another machine.

  • One daemon per machine, zero npm dependencies.
  • No open ports.
  • Apache-2.0, with light and dark screenshots of every surface in the README.

open badland-brain

badland-brain The shared memory · open source

One shared, self-hosted memory for Claude Code, Codex, ChatGPT and any MCP client.

status
Operated · Open source since October 2026
stack
TypeScriptMCPSQLite FTS5 + sqlite-vecMongoDB
code
github.com/coletebou/badland-brain
license
MIT
since
2026-10-26
also in
the almanacthe plan set

Hybrid keyword and vector search, facts that keep their history, per-agent keys, a write gate that refuses secrets, and provenance on everything an agent reads back.

§ The problem

Every coding agent starts each session knowing nothing it learned yesterday, and each tool keeps its own private notes. A fleet of them re-learns the same facts and contradicts itself.

§ The memory

One self-hosted service that Claude Code, Codex, ChatGPT and any MCP client read and write. Search mixes keywords and vectors; a fact that changes is superseded rather than duplicated, so it keeps its history; every agent has its own key; and everything read back carries where it came from.

  • SQLite FTS5 with sqlite-vec for search.
  • A write gate that refuses anything shaped like a secret.
  • MIT licensed.

open dx

dx The environment · open source

Dotfiles for running fleets of coding agents.

status
Operated · Open source since October 2026
stack
zshtmuxClaude CodeCodex
code
github.com/coletebou/dx
license
MIT
since
2026-10-26
also in
the almanacthe plan set

Claude Code and Codex hooks, a skills marketplace, tmux, git worktrees, session handoff chains and agent memory, for macOS and Linux.

§ What it carries

The shell, tmux and git setup every machine shares, plus the agent layer on top: hooks for Claude Code and Codex, a marketplace of skills, worktrees for parallel sessions, chains of session handoffs, and the memory the agents keep between them.

open porchlight

porchlight The login screen · open source

A fast, fleet-aware login dashboard for your terminal.

status
Operated · Successor to fleet-motd
stack
Python 3.9+zero dependencies
code
github.com/coletebou/porchlight
license
MIT
since
2026-10-21
also in
the almanacthe plan set

Vitals, services, AI agents and their plan limits, containers, pull requests and cloud status, ranked into one attention list and rendered from cache in milliseconds.

§ One attention list

A message of the day for a fleet: the machine's vitals and services, the AI agents and how much of their plan is left, Docker, open pull requests and cloud status, ranked into a single list of what needs you. It renders from cache, so the login never waits on the network.

open grok-bot-backup

grok-bot-backup Backups · open source

Back up every Grok Bot, routine and skill to git as plain files.

status
Beta · v0.1.0
stack
Pythongit
code
github.com/coletebou/grok-bot-backup
license
MIT
since
2026-10-25
also in
the almanacthe plan set

Unofficial and read-only: every bot, routine and skill lands in a git repository as plain files you can read and diff.

§ What it does

It reads your Grok Bots, their routines and their skills, and writes each one to git as plain files. It never writes back: unofficial, and read-only on purpose.

open badland-line

Badland Line SMS for Grok Bot · open source

Text your Grok Bot from any phone over SMS.

status
Live
stack
MCPSMS
code
github.com/Badland-AI/grokbot
live
badland.ai/line
license
MIT
since
2026-10-16
also in
the almanacthe plan set

A remote MCP server and a skill: the bot gets a phone line, and you text it from any phone.

§ How it works

A remote MCP server gives the bot an SMS line, and a skill teaches it to use it. Text the number from any phone and the bot answers in the thread.

open badland

Badland AI Chat Multi-model product · operated in production

One coherent chat surface for four frontier-model families, voice, images, files, web research, councils and concise briefings.

status
Live
stack
React 19Express 5MongoDBtRPCAI SDKCloudflare
code
private source
live
chat.badland.ai
since
2025-07-28
also in
the almanacthe plan set

A chat app that puts three AIs on one prompt, side by side, across the OpenAI, xAI, Google and Anthropic model families, with voice, image, file, web-research, council and briefing modes.

§ Product thesis

Model choice should feel like a capability, not a configuration chore. Badland exposes fast and deep reasoning, direct-provider paths, image and voice modes, multi-model councils, files and web research through one consistent interaction model.

§ System

The product combines a React client with typed service boundaries, durable conversation state, streamed model activity, provider-specific adapters, authentication, billing-aware entitlements and observability.

  • Streaming keeps reasoning, tool work and final output legible.
  • Provider adapters keep each model family's distinctive capabilities behind a common product model.
  • Guest and signed-in paths use different model and usage boundaries.
  • The same product is exercised across desktop and mobile.

§ Operating it

I own the product loop from interaction design and model routing through deployment, traces, incident response, and the unglamorous fixes that keep a multi-provider system coherent as APIs change.

open agent-platform

Badland Agent Platform Personal agents · native messaging

Persistent personal agents you text over iMessage, SMS and Telegram, with isolated tenants, memory, tools, reminders and artifact creation.

status
Beta · Private beta
stack
imsgOpenClawTypeScriptTenant isolationSMS
code
private source
live
agent.badland.ai
since
2025-07-28
also in
the almanacthe plan set

A personal AI agent you text over iMessage, SMS and Telegram. Each person gets an isolated agent with its own context, tools, schedules and delivery identity, and the interface stays a message thread.

§ Product

Each tenant gets a persistent agent with its own context, tools, schedules and delivery identity. The useful work is broad: research, images, documents, reminders, lightweight software and ongoing conversations. The interface remains a message thread.

§ Native transport

In 2026 I removed the former webhook architecture and moved the platform to OpenClaw's native imsg path. A broker resolves each inbound message to at most one tenant, isolates socket and attachment namespaces, and rejects ambiguous ownership.

  • Compare-and-swap route changes stop a stale owner from winning.
  • Per-tenant journals give bounded, at-least-once replay after an interruption.
  • Health checks walk the real delivery path instead of trusting process state.
  • Backups capture one coherent transport generation.

§ Evidence without surveillance

The plate is the public product page. Private conversations, phone numbers, account identifiers, the people behind the agents and the sites they build are not portfolio material.

open agent-runtime

Badland Agent Runtime Isolation · provisioning · recovery

The runtime beneath the personal agents: tenant provisioning, tool boundaries, routing, observability and recovery.

status
Operated
stack
OpenClawContainersgVisorsystemdObservability
code
private source
since
2025-07-28
also in
the almanacthe plan set

Treats personal agents as long-lived services with explicit ownership and recovery, not disposable chat sessions.

§ Lifecycle

Provisioning creates an isolated tenant, applies a bounded tool and model policy, establishes delivery routes, and records enough state for the service to be inspected and repaired later.

§ Safety model

The runtime combines container and process isolation with explicit filesystem and credential scopes. Transport ownership fails closed, and health checks exercise the user-facing path rather than reporting a green process alone.

§ Operations

Deployment, logs, traces, usage controls, backups and repair workflows are part of the product. This is where most of the hard-won agent expertise lives: making stateful, tool-using software recoverable.

open tide

Tide Native code editor · iPad + iPhone

A native Swift code editor for iPad and iPhone in the spirit of VS Code: the workbench, shortcuts, Quick Open and themes, rebuilt without a web view.

status
Building · Early · open source
stack
SwiftSwiftUITextKitSwiftTerm
code
github.com/coletebou/tide
license
MIT
since
2026-10-21
also in
the almanacthe plan set

A native code editor for iPad and iPhone in the spirit of VS Code, with SSH terminals, remote workspaces and AI assistance on the roadmap.

§ Why build it

The iPad is still missing the editor development needs. Tide came out of a research pass over about twenty-five iOS editors, VS Code's internals and iOS platform limits, and starts from the workbench people already know, rebuilt natively, before adding remote machines and agents.

§ What works today

SwiftUI drives the workbench and UIKit with TextKit drives the editor. The first version already carries a surprising share of a desktop editor.

  • Incremental syntax highlighting for about thirty languages, using VS Code's line-state tokenization model.
  • Quick Open with VS Code's fuzzy scorer and prefixes, project-wide search and replace, and an outline.
  • Ten color themes, VS Code theme import, and a settings editor keyed to VS Code's setting names.
  • A terminal panel and a pure-Swift reader for .git folders: branch, status and diffs against HEAD.

§ Next

The roadmap adds SSH hosts and remote workspaces, language servers over SSH, and AI assistance whose edits are reviewed hunk by hunk. It is public and MIT licensed, and labelled early on purpose.

open airspace-lab

Airspace Lab Interactive 3D learning lab

Orbit, slice and probe U.S. terminal airspace in 3D instead of memorizing a sectional.

status
Prototype · Public source; no hosted copy yet
stack
Three.jsTypeScriptViteWebGL
code
github.com/coletebou/airspace-lab
since
2026-07-28
also in
the almanacthe plan set

A dependency-light Three.js trainer: orbit and profile cameras, altitude slicing, an aircraft probe, class comparisons and short knowledge checks.

§ Why build it

Terminal airspace is usually taught as a stack of flat diagrams. The rules make more sense when the learner can move a probe through the actual volume and see what changes with position and altitude.

§ Interaction model

The lab combines orbit and profile cameras, altitude slicing, an aircraft probe, class comparisons and short knowledge checks in a focused Vite application.

  • Direct manipulation instead of a passive animation.
  • Profile and plan views connect vertical and horizontal limits.
  • Progressive controls keep it useful on smaller screens.
  • Minimal dependencies keep the experiment easy to inspect.

open sunnydayz

Sunny Dayz Commerce · storefront and operations desk

A storefront with its own operations desk: import, margin rules, ad copy and Stripe checkout.

status
Live
stack
Next.jsStripeMongoDB
code
private source
live
sunnydayz.co
since
2026-03-10
also in
the almanacthe plan set

A commerce storefront with its own operations dashboard: product import, margin rules, generated ad copy and photography, and Stripe checkout.

§ What it is

A storefront with its own operations desk: products are imported, priced by margin rules, given generated ad copy and photography, and sold through Stripe checkout.

open tallgrass

Tallgrass Nature · web, API and iOS

Discover, identify and share the natural world: web, API and an iOS app.

status
Live · Open signup on the web and TestFlight
stack
TypeScriptBunSwift
code
private source
live
tallgrass.social
since
2026-09-06
also in
the almanacthe plan set

Discover, identify and share the natural world, on the web, through an API, and in an iOS app. Open signup on the web and on TestFlight.

§ What it is

Discover, identify and share the natural world: a web app, an API and an iOS app over the same record. Signup is open on the web and on TestFlight.

open macroos

MacroOS Economics · dashboard

A macroeconomics dashboard with FRED series and scenarios.

status
Live
stack
HTMLJavaScriptFRED API
code
private source
live
macroos.org
since
2026-03-26
also in
the almanacthe plan set

A macroeconomics dashboard built on FRED series, with scenario analysis. A product experiment, not a data authority.

§ What it is

A macroeconomics dashboard that charts FRED series and runs scenarios over them. It is presented as a product experiment rather than a verified data authority.

open starheart

starheart.ai Values-driven AI

A Christian AI initiative: intelligence in service of the Creator.

status
Live
stack
HTMLCSSJavaScriptCloudflare Pages
code
private source
live
starheart.ai
since
2026-03-05
also in
the almanacthe plan set

A Christian AI initiative, published as a zero-build static site.

§ What it is

A Christian AI initiative, published as a zero-build static site on Cloudflare Pages.

open setline

Setline Training · web and iOS

A gym-aware training log and coach, with video form feedback.

status
Beta · Internal TestFlight
stack
TypeScriptBunHonoSQLiteSwiftUI
code
private source
live
setline.work
since
2026-09-11
also in
the almanacthe plan set

Gym-aware workout planning, logging and video form coaching for the web and iOS.

§ What it is

A training log and coach that plans around the equipment your gym has, logs the work, and gives feedback on form from video. Web and iOS; the iOS app is in internal TestFlight.

open undertone

Undertone Music · live studio

A live music studio and editable sketchbook on Lyria RealTime.

status
Beta
stack
JavaScriptWeb AudioLyria RealTime
code
private source
live
undertone.fyi
since
2026-09-10
also in
the almanacthe plan set

A live music studio and an editable sketchbook, built on Lyria RealTime and Web Audio.

§ What it is

A live music studio on Lyria RealTime: you steer the music while it plays, and the sketchbook keeps what you made so you can come back and edit it.

open respondeo

Respondeo Faith · answers with sources

A Catholic companion: answers from Scripture, Tradition and the Magisterium, every citation checked.

status
Building
stack
TypeScript
code
private source
since
2026-10-24
also in
the almanacthe plan set

A Catholic companion for questions of faith: answers from Scripture, Tradition and the Magisterium, with every citation checked against the sources.

§ What it is

A companion for questions of faith that answers from Scripture, Tradition and the Magisterium, and checks every citation against its source before showing it.

open altivolus

Altivolus Aviation · flight platform

An aviation platform: an E6B, ground school you fly, tracks, live ATC and decoded weather.

status
Building
stack
TypeScript
code
private source
since
2026-08-24
also in
the almanacthe plan set

An aviation platform with an interactive E6B flight computer, ground school, flight tracks, live ATC and weather.

§ What it is

An aviation platform for student pilots: an interactive E6B flight computer, a ground school you fly through, flight tracks, live ATC and weather decoded into plain language.

open ai-cli

ai-cli Rust · multi-provider terminal UI

One prompt to Claude, GPT, Gemini, Grok and OpenRouter, side by side, streaming.

status
Operated · Active tool
stack
RustRatatuiStreamingWeb search
code
private source
since
2026-01-17
also in
the almanacthe plan set

A Rust CLI and Ratatui interface that streams one prompt across several model providers for side-by-side comparison, or to one provider for focused work.

§ Workflow

A prompt can target one provider or fan out to a configurable council. Responses stream into stable panes, which makes differences in reasoning, citations, tone and failure behavior easy to inspect.

§ Current implementation

Rust, with a Ratatui interface, provider-aware routing, retries, web search, file and stdin context, and both interactive and composable command-line modes. ai-keys, its public sibling, manages the keys.

§ Design principle

The tool does not pretend consensus is truth. Its job is to expose independent outputs cleanly enough for a person, or a later synthesis step, to compare the evidence.

open ai-keys

ai-keys Rust · open-source prototype

One CLI to create, list, revoke and distribute API keys across AI providers.

status
Prototype
stack
RustCLICredentials
code
github.com/coletebou/ai-keys
license
MIT
since
2026-03-06
also in
the almanacthe plan set

One command line to create, list, revoke and distribute API keys across OpenRouter, OpenAI, xAI, Google and Anthropic. ai-cli is the query tool; ai-keys manages the keys.

§ Problem

Multi-provider development scatters key creation, status checks, revocation and machine setup across unrelated dashboards and local configuration formats.

§ Prototype

ai-keys explores one CLI for provider-aware lifecycle commands and controlled distribution to machines. It is public and MIT licensed, and presented as a prototype rather than a finished distribution.

open voice-agent

Voice Agent Ambient interface · hardware

A Raspberry Pi voice assistant: local wake word, a full-duplex realtime model, and barge-in.

status
Prototype
stack
PythonRaspberry PiRealtime audio
code
private source
since
2026-01-20
also in
the almanacthe plan set

A Raspberry Pi voice interface with local wake-word detection and switchable realtime model backends, where interrupting is a first-class interaction.

§ Interaction

A local wake-word model opens a full-duplex conversation. The implementation can route among realtime voice providers while keeping the same physical interaction.

§ What it tests

Voice exposes latency, turn detection, cancellation, audio-device recovery and cost in ways a text demo hides. The device is a compact test bed for those limits.

open not-a-number

NOT A NUMBER Media · music video

An original AI-culture music video, made with Blender and a simulation pipeline.

status
Complete
stack
PythonBlender
code
private source
since
2026-09-30
also in
the almanacthe plan set

An original music video about AI culture, rendered with Blender and a simulation pipeline.

§ What it is

An original music video about AI culture, built with Blender and a simulation pipeline. The video link is still to come.

open excito

Excito Seismic analysis · scientific computing

Earthquake ground-motion spectral matching: a modernized RSPMatch behind a Python command line, with a GUI and plots.

status
Prototype · Public source; license pending RSPMatch's terms
stack
PythonFortranCLISeismic
code
github.com/coletebou/Excito
since
2026-03-27
also in
the almanacthe plan set

A portable Python command line, GUI and plots around a modernized RSPMatch, the established spectral-matching routine, for repeatable ground-motion studies.

§ Constraint

Important seismic-analysis methods often live behind brittle legacy executables and hand-managed file flows. Replacing validated numerical work wholesale would add risk; wrapping it carelessly would keep the friction.

§ Approach

Excito puts a portable Python command line, a GUI and plots around a modernized RSPMatch (N. Abrahamson, 1993) and connects the results to a modern site-response workflow. The boundary keeps provenance visible while making batch runs repeatable.

  • Explicit input and output contracts around the legacy routine.
  • Scripted studies in place of manual desktop steps.
  • Plots for checking each match by eye.

open upstream

Upstream ooxml · OpenClaw · Clawpatch · imsg

Pull requests merged into other people's projects: 72 to ooxml and 10 across OpenClaw's projects.

status
Ongoing · 82 merged · October 2026
stack
TypeScriptReliabilityOffice Open XML
code
private source
evidence
merged pull requests, on GitHub
also in
the almanacthe plan set

Pull requests merged into other people's projects, as of October 2026: 72 to ooxml (the logic behind its Office viewers) and 10 across OpenClaw's projects: 8 to Clawpatch, and one each to OpenClaw itself and imsg. Five more are open on OpenClaw.

§ Merged work

Seventy-two pull requests landed in ooxml, the logic behind its Office viewers, and ten across OpenClaw's projects: eight in Clawpatch and one each in OpenClaw and imsg. Five more are open on OpenClaw.

§ Why these changes

Agent tools spend much of their life at external boundaries: model providers return partial data, network calls fail transiently, schemas evolve, and channels carry ambiguous context. These contributions make those edges explicit rather than hiding them behind a generic failure.

§ Live evidence

The evidence link opens GitHub's own search for merged pull requests by this author outside his own repositories, so the current record is inspectable at the source rather than asserted here.