Projects

What I’m building — personal open source, and products at Hatchworks VC.

Open Source

At Hatchworks VC


Spectre.ai

A memory layer that gives AI agents persistent recall across sessions. Spectre ships with plugins for Claude Code and OpenCode today, with more on the way.

The problem: AI agents forget everything between sessions. Vector databases alone don’t work because semantic similarity doesn’t understand importance or recency.

The approach: Hybrid storage — Postgres for structured metadata and scopes, vector search for semantic recall, with three explicit memory types: user-specific, session-specific, and shared pools.


Zeig.ai

Financial analysis through conversation using multiple LLMs and vision AI.

The problem: Financial analysis tools are either too simple (chatbots that can’t do real math) or too complex (Bloomberg terminals with a learning cliff).

The approach: Multi-model pipeline — TypeScript API layer for real-time WebSockets and type safety, Python backend for LLM orchestration and the ML toolkit, connected via gRPC. Vision AI for chart analysis.


Smallwork

A small footprint full-stack AI framework for PHP. Build AI-powered web applications with a unified multi-provider gateway, server-rendered templates, vector search, and enterprise features — without the overhead of a large framework.

I kept running into the same problem on PHP projects: bolt on an HTTP client for OpenAI, write a normalizer, add another wrapper for Anthropic, then realize embeddings need a vector database, and suddenly half the codebase is glue. Smallwork puts the AI gateway, embeddings, semantic search, and RAG into the framework layer so application code stays focused on the application.

What it does:

PHP 8.2+. MIT licensed.

Lab article · Website · GitHub


Vio

An AI-agent-first frontend framework. Components are pure JSON data structures. State is immutable. Every mutation is observable.

I got tired of watching LLMs generate broken JSX, violate hook ordering rules, and struggle with implicit context. So I built a framework where the entire component model is plain objects, renders are deterministic pure functions, and every operation is available through an imperative API that an agent can call directly.

What it does:

~1200 lines of TypeScript. No external dependencies.

Lab article · MCP tooling · Website · GitHub


ObsiTUI

A terminal client for Obsidian with real vim modal editing.

I spend my day in the terminal and my knowledge base lived in Obsidian’s Electron app. Every note lookup meant alt-tabbing, grabbing the mouse, switching contexts. So I built a terminal client that reads your existing .obsidian config and works where you already are.

What it does:

301 tests. TypeScript.

Lab article · GitHub

Explore

Notes Resources Now Uses Ask AI News