joekane.org / work.json
UTF-8LF
// selected work — what I've shipped.
[

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.

// featured — "id": 1

Nexus · live support wallboard

Nexus

Put your support desk on the big screen.
shipping2026
The Nexus wallboard — KPI panels, agent leaderboards and live ticket queues on a dark dashboard.The same Nexus wallboard in one of its built-in colour themes — recoloured end-to-end, switchable from a set of presets to match any brand or room.

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.

// one board, every screen

A fullscreen-scaling layout fills a 4K wall TV or reflows to a single-column phone — each surface keeps its own per-device layout.

// built to motivate

Goal-tracked KPIs with RAG status, leaderboards, an agent-of-the-period crown, a team-goal thermometer — and confetti when the target falls.

// live where it matters

Tiered refresh (20s Talk · 60s tickets · 5-min aggregates), SLA breach countdowns, a war-room takeover, sound alerts and drill-downs.

// production-minded

First-run wizard, OS-native encrypted secrets, admin tokens, client-scoped access links with server-enforced isolation and SSRF-guarded fetches.

"stack"ReactViteElectronNodeDocker / GHCRStripeZendesk API
"platforms"WebDesktopiOSAndroidZendesk app
"integrations"Zendesk Support + TalkFreshdeskFreshserviceJira Service ManagementHaloPSASuperOpsNinjaOneConnectWise PSAUniFiSlack / TeamsAI summaries
// featured — "id": 2

Switchboard · support-desk auto-router

Switchboard

Every ticket to the right engineer, automatically.
in Nexuspublic beta2026
The Switchboard board — on-shift engineers with their specialisms and current load, beside a live queue of tickets each routed to the best-matched engineer.Switchboard routing settings — Automatic mode with dry-run, business-hours and online-only rails, per-priority and per-area exclusions, and optional AI routing.Suggested specialisms — Switchboard learns each engineer's strengths from their recently-solved tickets, shown for review before they're applied to the roster.

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.

// auto-tag & route

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.

// multi-vendor

Zendesk, Freshdesk, Freshservice, Jira SM, HaloPSA, SuperOps, NinjaOne and ConnectWise PSA. Signature-verified webhooks in; assignment written straight back per ticket's source.

// optional AI routing

An LLM (OpenAI / Anthropic / custom) adds sentiment, a summary and a suggested area — advisory by default, with a deterministic fallback.

// production-minded

In-app setup UI, API keys encrypted in a secret vault, admin role, hardened sessions and exactly-once intake with crash recovery.

"stack"TypeScriptNodeDrizzlePGlitePostgres / NeonWebSocketElectronDockerVitest
"platforms"WebDesktopiOSAndroidZendesk app
"integrations"ZendeskFreshdeskFreshserviceJira SMHaloPSASuperOpsNinjaOneConnectWise PSAOpenAI / Anthropic
// open source — "id": 3

Pare · smart test selection

Pare

Run only the tests your diff actually touches.
MITgithub2026
Pare selecting 14 of 1,820 tests from 3 changed files in 41ms, then a green Vitest run that finishes in 0.9s instead of 47s.

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.

// diff-scoped selection

Walks the reverse import graph from the changed files — honouring tsconfig path aliases and dynamic imports — down to the minimal set of affected tests.

// safe by default

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.

// flakiness signal

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.

// optional LLM booster

Off by default and never load-bearing — when enabled it only adds heuristic suggestions for dynamic links static analysis can't see, always flagged.

"stack"TypeScriptNodeZero deps
"runs on"VitestJestnode --test
"install"npx github:TheJoeKD20/pare
// open source — "id": 4

Leash · runtime safety for AI agents

Leash

Put your autonomous agent on a leash.
MITgithub2026
A leash execution trace — an allowed file read, two policy-blocked calls (a secret file and network egress, with an API key redacted), and a loop hard-stop halting a runaway agent.

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.

// a tool-call firewall

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.

// caps & a kill-switch

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.

// human-in-the-loop

Flag sensitive calls as ask and pause for a human; approve or reject with a reason that flows straight into the trace.

// replayable traces

Every call — allowed, blocked or halted — appended to a JSONL trace with secrets redacted and flushed per event, then rendered with leash view.

"stack"TypeScriptNodeESM + CJSVitest
"adapters"Anthropic SDKVercel AI SDKGeneric
"install"npm i github:TheJoeKD20/leash
// open source — "id": 5

Pitstop · a breakpoint for your CI

Pitstop

Debug your CI in the pit, not on the track.
MITgithub2026
Pitstop pausing before the unit-test step, dropping into the runner's shell with the exact env and filesystem, fixing a file with no commit, then resuming to a green step.

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.

// a real breakpoint

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.

// fix & retry, no commit loop

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.

// your real secrets, locally

A gitignored .secrets file is injected into the container, so your breakpoint shell sees the same values your step does — never committed, never logged.

// meets you where you are

Reads your existing .github/workflows/*.yml — there's no new pipeline DSL to learn and nothing to rewrite.

"stack"TypeScriptNodeDocker
"platforms"macOSLinuxWSL
"reads"GitHub Actions workflows
// open source — "id": 6

OpenTerm · Bloomberg-style market terminal

OpenTerm

A Bloomberg Terminal for the rest of us.
MITself-hosted2026
OpenTerm's amber-on-black Launchpad — live indices and movers with sparklines, world clocks, a sector monitor and a Bloomberg-style command line.

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.

// the real command grammar

Bloomberg-style ticker + function codes (FA, GP, DES, ERN) and full <GO> syntax, with autocomplete and a Launchpad home screen.

// deep security data

Multi-year financial statements and analyst targets, price charts, company descriptions and earnings — sourced from unofficial free APIs, no keys required.

// live market monitors

World indices and movers with sparklines, a GICS sector monitor, commodities, treasury yields, FX and crypto, plus a live news wire.

// zero-dependency frontend

No build step — plain JS/CSS and canvas charts. Backend runs identically on Node/Express or a Cloudflare Worker on the free tier.

"stack"Vanilla JSCanvasNode / ExpressCloudflare Workers
"data"Yahoo FinanceCoinGeckoFrankfurter / ECBOpen-MeteoFinnhub (optional)
"deploy"npm startwrangler deploy
main
✓ 0 ⚠ 0
Ln 1, Col 1
Privacy
Spaces: 2
JSON
Tweaks