Appdock — Communication skill for Claude Code
Starter kit for agent-built local apps on Mac: zero-dependency localhost server, SQLite seam, incident-hardened human-approval queue, headless-Claude chat, Dock-pinnable .app + launchd, and a reuse-do.
How to install Appdock
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open Lukehle/appdock and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Appdock does
Starter kit for agent-built local apps on Mac: zero-dependency localhost server, SQLite seam, incident-hardened human-approval queue, headless-Claude chat, Dock-pinnable .app + launchd, and a reuse-don't-regenerate agent manual — precoded parts so the tokens go to your domain logic.
Alternatives in Communication
- HolaOS — Open-source agentic workspace enterprises can make their own 10.9k ★
- Social Media Agent — 📲 An agent for sourcing, curating, and scheduling social media posts with human-in-the-loop 2.8k ★
- Aso Skill — App Store Optimization for mobile apps 255 ★
README
appdock
A starter kit for **agent-built local apps on a Mac** — the precoded, tested parts that every localhost ops app needs, so Claude spends tokens on your domain logic instead of regenerating (and subtly breaking) the same scaffolding every project. Extracted from three production local-first apps; every safety rule in here encodes a real incident.
**Zero dependencies by default.** Node ≥ 22.13.0 and a browser — nothing to install, nothing for an agent to version-wrangle, every file readable in one sitting. A pinned batteries tier exists for when an app genuinely outgrows lean ([batteries/](batteries/README.md)).
Start an app
git clone https://github.com/Lukehle/appdock
./appdock/new-app.sh "Ops HUD" ~/apps/ops-hud
cd ~/apps/ops-hud && npm test # 27 tests green before you write a line
npm start # http://127.0.0.1:7480
On the Mac, `new-app.sh` also builds **"Ops HUD.app"** — a Dock-pinnable launcher that starts the server if it's down and opens the UI as a chromeless app window. The whole app folder (bundle included) can live in a **shared Google Drive folder**; each user's data stays local, and [docs/DRIVE.md](docs/DRIVE.md) covers the sharing patterns and the one rule that prevents database corruption.
What's precoded
| Part | The short version |
|---|---|
Approval queue (approvals/queue.js) |
Every outward action stages for a named human: approval binds to a hash of what will actually leave; dispatch is mutexed at the database; verification is tri-state and "couldn't confirm" is never auto-retried. The crown jewel — docs/PARTS.md explains why. |
Localhost server (server.js) |
127.0.0.1-only with Host checking; every mutation also requires a per-install bearer token stored mode-0600 where supported; CSP'd, traversal-safe static serving. |
SQLite seam (db/) |
Node's built-in node:sqlite with better-sqlite3 fallback; WAL; ordered checksum-protected migratio |
Related Skills
Onelink Claude Code
Build and Ship Nuxt 3 fullstack starter apps with Auth, DB, Payments, Email & File storage
Session Glue
Reset the chat, not the work — zero-dependency, repo-local session handoffs for coding agents. Freeze a bloate
Resumable Work
Agent skill for cross-session continuity: the repo and .agent-state/ replace chat history, so a new Claude Cod
Email Triage
Run VIVAZ email Inbox Zero triage for one account, then open the action queue.
Mail Agent
Self-hosted personal email agent: indexes IMAP accounts into PostgreSQL and answers questions over Telegram us
Plan Ticket
Turn a ready analysis into plan.md and a prioritised, categorised tasks.md — proposed in chat first, written a
Related Agents
Harden Issues Seam
Reads a whole set of hardened issues plus the attackers' findings and hunts the gaps between them, for the /ha
Mestre Bloat Analyzer
Review the hardened plan for avoidable complexity and give specific simpler alternatives and tradeoffs. Never
Browser QA Agent
QA engineer with Chrome integration. Navigates running web apps, clicks elements, fills forms, reads console e