Repository navigation
v2.4.1
Lectern 2.4.1 is the first published release with lectern up. The install one-liner now gives you everything the README shows. (The v2.4.0 tag failed to build for Windows and was never published.)
Highlights
- Drive Lectern from claude.ai or ChatGPT. A chat can start a session that builds what you just designed, send it files (uploads arrive as the real file), check on it, restore it and end it. You approve the connection, and a chat can never approve an agent's actions. → docs/use-from-chat.md
- End-to-end encrypted relay. Run
lectern relayon any small server and pair a phone by QR code: no VPN, no inbound port. Traffic is sealed with Noise (the protocol behind WireGuard), and the relay never serves app code. → docs/relay.md - CI loop. When a PR's checks fail, Lectern sends the failing jobs and a trimmed, secret-masked log back to the agent that wrote the code, then commits and pushes the fix, up to 3 tries. → docs/ci-loop.md
- Usage limits. When Claude, Codex or Gemini hits its limit, the card and your phone show when it resets. Lectern can resume the same agent after the reset, never twice, or hand the work to another agent in the same workspace. → docs/rate-limits.md
- Restore anything. One list for closed, archived, crashed and reboot-lost sessions, with Undo after ending, Revive for an agent that exited, and
lectern restorein the terminal. - Any agent. Add OpenCode, Aider, Goose, Amp, Cursor, Copilot CLI, Qwen Code, Crush, Kimi or Cline from Settings, or any CLI as a custom agent. Project skills and MCP servers now reach Gemini, Qwen, OpenCode and Copilot too.
- Phone. Tool calls show as chat cards with real diffs. Approve once, for the session, or deny with feedback. Voice mode uses the browser's free speech engine.
- Terminal.
lectern up,lectern claude/lectern codexin any folder, andCtrl+\to send a file to the agent.
Scale
One Lectern process ran 250 concurrent sessions across 4 targets using 65 MB of memory, with approvals round-tripping in about 7 ms. An unreachable machine no longer stalls status for the others, and terminals are no longer capped at 21. → docs/benchmarks/scale.md
Also
-
An Android app prototype lives in
mobile/android: approve, deny or reply from the notification with the app closed, over the relay or directly, with push via UnifiedPush/ntfy. It isn't published yet; see docs/android.md to build it. -
Codex spend is priced from your model price table, now editable in Settings → Budgets, including cached-input rates.
-
The New Session dialog warns about overlap with other agents' work.
-
Web terminals use private per-instance Unix sockets instead of shared loopback ports.
-
Deleting a project removes everything under it in one transaction.
Android prototype APK
The 0.1.0 APK that was attached here has been withdrawn: it opened every in-app terminal as a second copy of the app. Use the fixed, signed 0.2.1 APK on the v2.6.0 release instead. It is signed with the same key, so an installed 0.1.0 upgrades in place and keeps its pairing.