Hanif Carroll Technical Product Partner

Local-first tools for agent-heavy work.

These are the small systems I build around my own workflow: Codex remote control, session recall, mailbox evidence, tool-feedback loops, and desktop automation. They sit behind the client work, but they show how I think about reliability, permissions, and operational context.

agent surface codex, telegram, mailbox, browser

state sqlite, jsonl, markdown, local artifacts

rules narrow permissions, receipts, approval gates

output tools that make real work easier to repeat

Useful enough to explain publicly.

The point is not a long list of side projects. These are the tools that best show the operating system I am building around agentic work.

Public OSS

Remote Codex control

codex-telegram-bridge

A local bridge that lets me mark myself away, receive Codex updates in Telegram, reply back into the right thread, inspect active work, and approve actions without keeping the laptop in front of me.

Why it exists

It turns Codex Desktop from a single-machine workflow into something I can safely supervise while away.

View repo

Public OSS

Session recall

codex-recall

A local SQLite FTS index over Codex session archives, built so agents can search prior work, inspect receipts, and reuse context without treating raw JSONL logs like a durable database.

Why it exists

It gives long-running agent workflows memory with evidence instead of vague recollection.

View repo

Public OSS

Mailbox evidence

mailbridge

A conservative JSON CLI over local Gmail and Fastmail access for search, read, thread lookup, attachment download, evidence pulls, and draft-only composition.

Why it exists

It gives agents useful mailbox context while keeping the boundary narrow: no send, archive, delete, or label mutations.

View repo

Experimental

Tool improvement loops

tool-feedback

A local runtime for submitting tool-friction cases, deduping them, routing triage or patch jobs, and sending approval/status updates through Telegram.

Why it exists

It makes tool improvement a tracked workflow instead of scattered notes after something breaks.

View repo

Public toolkit

macOS automation

cli-tools

A TypeScript monorepo of local CLIs for macOS apps, Granola notes, browser tabs, and social workflows that agents can call during real work.

Why it exists

It keeps useful desktop context reachable through explicit commands instead of fragile one-off scripts.

View repo

The same judgment shows up in client systems.

Local first

The useful state stays on the machine whenever possible: transcripts, mailbox pulls, tool feedback, and workflow databases.

Narrow permissions

Tools should expose the smallest useful surface, especially around email, browser sessions, client context, and agent actions.

Receipts over vibes

Agent workflows get better when they can point to source files, command output, run artifacts, and explicit state transitions.

See client case studies