work.json
Built around the support desk: Nexus puts it on the wall, and Switchboard — its auto-routing add-on — sends each ticket to the right engineer. Nexus ships from one codebase to web, desktop, mobile and Zendesk.
Alongside them, a set of open-source developer tools I build in the open — Pare, Leash, Pitstop and OpenTerm — on GitHub.
Nexus · live support wallboard

Nexus


Real-time helpdesk data — Zendesk (Support + Talk) live-tested, with Freshdesk, Freshservice, Jira Service Management, HaloPSA and more — on a beautiful, fully-configurable board built for wall TVs, desk monitors, phones, the desktop, and inside Zendesk itself. Drag panels to reorder, lock it for a public screen, and pick from one-click layout presets. A zero-setup demo mode fills the board with realistic sample data in about 30 seconds.
A fullscreen-scaling layout fills a 4K wall TV or reflows to a single-column phone — each surface keeps its own per-device layout.
Goal-tracked KPIs with RAG status, leaderboards, an agent-of-the-period crown, a team-goal thermometer — and confetti when the target falls.
Tiered refresh (20s Talk · 60s tickets · 5-min aggregates), SLA breach countdowns, a war-room takeover, sound alerts and drill-downs.
First-run wizard, OS-native encrypted secrets, admin tokens, client-scoped access links with server-enforced isolation and SSRF-guarded fetches.
Switchboard · support-desk auto-router

Switchboard



A ticket auto-router for the support desk — now a private add-on inside Nexus. It classifies each incoming ticket and routes it to the best on-shift engineer by specialism, availability and load, then — where your help desk supports it — writes the assignment straight back. When nobody's free it holds and asks the team. It shows its working: every recommendation comes with a full routing trace.
In public beta on the Nexus board — included with every Enterprise licence.
Classifies and assigns by skill, load and a fairness rotation — with holds, auto-reassign on no-ack, escalation and an SLA clock that respects support hours.
Zendesk, Freshdesk, Freshservice, Jira SM, HaloPSA, SuperOps, NinjaOne and ConnectWise PSA. Signature-verified webhooks in; assignment written straight back per ticket's source.
An LLM (OpenAI / Anthropic / custom) adds sentiment, a summary and a suggested area — advisory by default, with a deterministic fallback.
In-app setup UI, API keys encrypted in a secret vault, admin role, hardened sessions and exactly-once intake with crash recovery.
Pare · smart test selection
Pare
A test selector for big monorepos. Pare reads your diff, walks the project's import graph, and runs only the tests that transitively depend on what you changed — same failures caught, a fraction of the runtime. It's static-first and deterministic, with zero runtime dependencies. Try it in 30 seconds — no account, no API key, nothing to sign up for.
Walks the reverse import graph from the changed files — honouring tsconfig path aliases and dynamic imports — down to the minimal set of affected tests.
A lockfile, tsconfig or runner-config change runs the whole suite rather than guess. It never silently skips a test it can't reason about.
Tracks per-test pass/fail history and ranks tests by a flake score, so a pared run's failures are ones you can trust — flaky and broken told apart.
Off by default and never load-bearing — when enabled it only adds heuristic suggestions for dynamic links static analysis can't see, always flagged.
Leash · runtime safety for AI agents
Leash
A safety membrane that slots underneath the agent framework you already use — not another framework. Leash wraps the tool-call boundary with declarative allow/deny policy, hard resource limits and a full forensic trace, so the blast radius of a misbehaving agent is whatever you decided it should be, and not a byte more. Deny-by-default and safe out of the box.
Declarative allow/deny matched on tool names, paths, hosts and arguments — enforced at the boundary, under the Anthropic SDK, the Vercel AI SDK or LangChain.
Per-run budgets for call count, token spend and wall-clock, plus loop detection that halts a runaway the moment it starts repeating itself — terminally.
Flag sensitive calls as ask and pause for a human; approve or reject with a reason that flows straight into the trace.
Every call — allowed, blocked or halted — appended to a JSONL trace with secrets redacted and flushed per event, then rendered with leash view.
Pitstop · a breakpoint for your CI
Pitstop
A breakpoint for your CI. Pitstop reads your existing GitHub Actions workflows and runs a job locally in a container — but pauses before any step and drops you into the runner's shell with the exact env, secrets and filesystem that step would see. Poke around, fix it, and resume. No commit, no push, no waiting on a queue.
Pause before any step and land in the runner's shell with the exact environment, secrets and working directory it would have — the thing act doesn't do.
Edit a file or an env var in the paused container and re-run just that step — iterate in seconds instead of push-wait-read-logs.
A gitignored .secrets file is injected into the container, so your breakpoint shell sees the same values your step does — never committed, never logged.
Reads your existing .github/workflows/*.yml — there's no new pipeline DSL to learn and nothing to rewrite.
OpenTerm · Bloomberg-style market terminal
OpenTerm

A love letter to the real Bloomberg Terminal's amber-on-black command line — rebuilt from scratch on free, keyless market data instead of a $32k/yr feed. Type a ticker and a function code — AAPL FA, VOD LN EQUITY <GO> — and hit GO. No frontend build step: vanilla JS and canvas charts, deployable to a single Cloudflare Worker.
Bloomberg-style ticker + function codes (FA, GP, DES, ERN) and full <GO> syntax, with autocomplete and a Launchpad home screen.
Multi-year financial statements and analyst targets, price charts, company descriptions and earnings — sourced from unofficial free APIs, no keys required.
World indices and movers with sparklines, a GICS sector monitor, commodities, treasury yields, FX and crypto, plus a live news wire.
No build step — plain JS/CSS and canvas charts. Backend runs identically on Node/Express or a Cloudflare Worker on the free tier.
Also on GitHub
Tools, experiments and the rest of what I build in the open. Mostly TypeScript.