Projects

My Portrait

A local-first AI memory system for macOS.

It captures your screen, voice, and writing, and builds an external memory and a personal portrait out of them. Everything stays on your Mac.

My interactive graph, a snapshot from Sep 21, 2026.

Releases

Sparky-toolbox

A personal agent harness built for the NVIDIA DGX Spark.

It is optimized specifically for local models. The agent lives in an offline sandbox, every tool call passes through a gateway with budgets, hooks and approvals, and untrusted content is read by isolated subagents, so the model stays precise and reliable across long, multi-step tasks.

AGENT TASK · one run, traced"Add the lab meeting to my calendar, and turn thepaper my professor sent into a one-page PDF."MODELGATEWAYevery call: budgets · hooks · approvals1BUILT-IN FUNCTIONgrep "lab meeting" notes.md→ Thursday 3 pm · runs in the sandbox2LOAD A TOOLload_tool("calendar")→ guide + signature, now callablecalendar.add("Lab meeting", Thu 15:00)3CALL A SUBAGENTreader: "summarize the paper in today's email"READER LOOPits own model, prompt and toolsreads the mail and PDF in isolationthe main model waits→ summary with verified quotes4LOAD A SKILLload_skill("pdf")→ SKILL.md + scriptspython make_pdf.py summary.md5ANSWERmeeting added · summary.pdf savedWORKFLOW TASK · fixed stepsSCHEDULEat set timesLISTENERwhen something happensMANUALfrom the CLI or a DMQUEUE · BY PRIORITYSTEP 1fetch.pyno GPU: runs at onceSTEP 2summarize.py + modelwaits for its modelSTEP 3notify.pysends the replyeach step names its ownmodel and resourcesurgent jobs can preemptbetween stepsWAIT FOR NEXT TRIGGER
One agent run traced through its loops, beside a workflow task.

It allocates the machine to the work. Each task, subagent and tool call is given the model, memory and context suited to it: models are loaded and swapped per job, tools run in containers within their declared limits, and context is assembled on demand instead of all at once.

SELF-EXTENSION · the builder subagentNEEDS AN ABILITY1a task needs a tool,task or subagentit doesn't have yetPLAN2the builder draftswhat to build and howAPPROVAL3an approval card;nothing is builtbefore a yesBUILD LOOPDEVELOPin an isolateddev areaTESTfull suite vs.current mainTRIALa real run inthe live setup456fix and retry until every check passesSHIP7merged anddeployedIN THE CATALOGthe agent can load itfrom the next run on
How Sparky-toolbox extends itself.

It also improves itself. When the agent lacks an ability, it designs a new tool, task or subagent, builds and tests it in an isolated dev area, and ships it once approved. Its capabilities are not limited to what it was given.

Releases

More on GitHub.