Skip to content
All projects
ExperimentalAI agent infrastructure · 2026

Nightshift

A task runner that runs Claude Code on my own servers: queue a task from your phone, wake up to a verified branch and a summary.

🔒 Private repository

01 The problem

Running coding agents by hand doesn't scale: one terminal, one task, and you have to stay at the computer. I wanted agents to work through a queue on several servers, safely, while I'm away, and only hand me results that pass checks.

02 What it does

  • Postgres-backed queue with atomic pickup (FOR UPDATE SKIP LOCKED), so two workers never take the same task.
  • Each run gets its own git worktree, runs the agent, then a verify command; a failed verify gets one repair pass, otherwise the task ends as partial, not done.
  • High-risk tasks go through a plan gate: a read-only planning run, approval in the app, and only then the real run.
  • Android client for creating tasks, approving plans and cancelling runs, with push notifications and OTA updates.

03 Architecture

  1. 01 ClientNative Android app (Kotlin) + `ns` CLI
  2. 02 Control planeFastify REST API, auth, notification outbox, FCM
  3. 03 QueuePostgreSQL task state machine with leases and heartbeats
  4. 04 WorkersDependency-free Node worker per server: worktree → claude -p → verify → PR

04 Stack

TypeScriptNode.jsFastifyPostgreSQLClaude CodeKotlinAndroidFCMDockersystemd

05 How I worked with AI

This project is about making agents trustworthy enough to run unattended: they never merge on their own, failures are labelled honestly, follow-up ideas are only proposed and never started automatically, and every run is isolated in its own branch.

06 What is verified

  • Server, worker, migrations and Android client are present in the repository.
  • 16 test files; Dockerfile and Compose for the control plane.

07 Honest notes

  • Personal infrastructure, experimental. No CI pipeline yet.

08 Screenshots

Screenshots are being prepared with anonymised data. Real client data will not be shown.

Next projectFileAction