Repository navigation
Releases: JeremiahM37/lectern
Release list
v2.10.1
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.10.1
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.10.1Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
v2.10.0
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.10.0
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.10.0Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
- c7e9718 Apply the new violet and magenta desk brand across the app, PWA icons, Android launcher and README
- 0652b1a Make the X11 client library a direct dependency
- 64102a1 Merge pull request #10 from JeremiahM37/feat/clipboard-bridge
- 5f3943d Merge pull request #8 from JeremiahM37/fix/quick-shell-tui-host-env
- 25e3ba1 Merge pull request #9 from JeremiahM37/brand-refresh
- 48e9eb2 Paste screenshots into agent sessions from any device
- af22e6f Rebuild the web bundle for the clipboard bridge
- 0cd2a90 Release 2.10.0
- e4a239f Wait for machines to load before the console's blank-shell action decides there are none
v2.9.0
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.9.0
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.9.0Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
- 79b3da2 Android app: Back leaves the app instead of replaying #view history
- ae16095 Android app: use the phone's own speech for dictation and voice mode
- dd70010 Make the phone Sessions page a calm list
- 03dc307 Merge branch 'mobile-sessions-declutter' into mobile-voice-terminal
- 06dac25 Merge branch 'mobile-terminal-menus' into mobile-voice-terminal
- 31215f0 Merge pull request #7 from JeremiahM37/mobile-voice-terminal
- d6397da Open the terminal's menus as bottom sheets on a phone
- b5b1b63 Phone scratch cards: path and Copy on one line, meta on its own
- bca1365 Rebuild the web bundle for the phone voice, Sessions and terminal menu changes
- 3872e2a Release 2.9.0
v2.8.1
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.8.1
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.8.1Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
v2.8.0
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.8.0
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.8.0Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
- 187ef27 Add mods: plugin JavaScript that hooks and draws in the web app and the console
- 793bbfe Android app 2.8.0: clear of the camera and gesture bar, a calmer phone Sessions page, and updates from inside the app
- 273c941 Don't revive an eval cell cancelled while it was being dispatched
- 3f96b74 Expect every page in the desktop sidebar in the navigation walkthrough
- 0bf52d0 List every page in the desktop sidebar instead of hiding most under More
- cd47722 Mention the Android app in the README
- 8007ff4 Merge pull request #5 from JeremiahM37/connect-ui
- 98a1930 Merge remote-tracking branch 'origin/main' into connect-ui
- 43d7e80 Scroll Claude's fullscreen view with its page keys when its mouse is off
v2.7.0
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh # Linux, macOS
brew install JeremiahM37/tap/lectern # Homebrew
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern # Windows
docker run -p 127.0.0.1:9110:9110 -e LECTERN_INSECURE_LISTEN=1 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.7.0
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.7.0Windows PowerShell one-liner: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex.
Archives, .deb and .rpm packages and checksums.txt are attached below.
Changelog
- 67e028e A simpler web app: Sessions home, four-page navigation, one status and approval component, Start an agent with a folder picker, Settings Basics, commit on a new branch, Connect your phone, Enter sends
- 4d7c6f5 API for a simpler web app: one session status, folder browser, phone addresses, commit on a new branch, demo agent, ask by default on new installs
- af367b2 Accept a git name and email with a commit instead of sending people to git config
- db41479 Accept older Python wording for trailing-comma JSON errors in the parity test
- a3bed15 Add Python-compatible JSON, path and process helpers for helper ports
- 41478de Add lectern demo and point there when no agent is installed
- 182699f Add lectern ptyhost, a PTY keeper that outlives the server
- 23dec17 Add lectern update: install a GitHub release in place, checksum-verified
- f475bab Add target environments and the lectern helper subcommand
- 867f7c2 Add the pty session backend and serve web terminals without ttyd
- 8d65dce Ask for a git name and email in the terminal commit form
- 8208cab Attach bar in plain words: Ctrl+] shows the keys that follow it, Ctrl+] d leaves, Ctrl+] ? lists every attach key
- e13e858 Attach through the target's backend from every terminal endpoint
- 26c7672 Attach without tmux: Lectern draws the session with the same key bar, Ctrl+] keys, needs-you note, links, panes and clipboard
- 9c4693f Browser tests for the simpler desktop sidebar, chat ⋯, commit result, inline git identity and the terminal approval strip
- 418e4f0 Browser tests for the simpler web app: the audit's seven walkthroughs at 1440 and 390 px, first run, light/dark sweep of the new screens, updated navigation and wording
- b262942 Build the helper parity tests only on Unix
- ab3e664 Chat: keep the header to name, status and close; put usage, tests, agent switching and text size behind ⋯ in plainer words
- 5b98a4b Check the README's version badge only when it has one
- 9270d85 Check the agent is installed before Revive closes the old terminal
- 2410309 Check the socket guard in child processes without /bin/sh, so it runs on Windows
- 1dbdab1 Close disposable capture shells after recording
- 0d0535e Commit tab: ask for a git name and email inline, draft a message only when asked, and say where the commit went
- a368b46 Commit tab: show a refused name or email under the fields, credit fallback drafts plainly, tuck push, amend and PR under Options, and say when there is nothing to commit
- 1775a1e Dashboard e2e reads the described project, not its record
- 1e87ecf Deny with n on an asking session and offer tmux discovery only where tmux exists
- a6977ad Design a session backend seam and a built-in PTY host
- e966625 Design doc: the shared status words and what was built
- 561cc66 Design for a simpler web app: navigation, first run, status words, approvals, settings, commit, phone
- 3990f0d Design: simpler terminal dashboard and attach bar
- ded8ff1 Docs for the simpler web app; the start sheet asks while the default loads; tests follow Sessions as home and the new words
- 2f35bb4 Docs: browser sign-in for the local runtime, where serve listens, ttyd, help and update
- eb5c66a Document the PTY host, term-server and what agent machines need now
- 86d4bb7 Don't toast the 401s the access-token dialog already explains, and check the current first run in the Docker release test
- 4438a20 Drop the ttyd prompts now that the web terminal is built in, and stop asking for tmux and python3
- e22c4bc Exercise portable attachment controls on native Windows and macOS
- 03ca735 Fall back to the suggested commit message when a draft is not one
- 814c5b5 Follow the device's light or dark setting by default
- 3fe00c3 Format the demo command and the synonym table
- 8aa5732 Give Go and Git Bash the same file for /tmp paths on Windows
- 3c2e1ab Give terminal programs the environment ttyd and tmux gave them
- c7d5483 Give the desktop sidebar the phone's three items and a More group
- deba06a Have the attach-test popup report through a file, not the screen
- 4956a09 Help and guide name Ctrl+] d as the way to leave
- 125eddc Hints for terminal links, and feedback when one opens
- fc68c6d Keep a server's database in the state directory, and make local status and controls readable without a terminal
- 3916550 Keep a session's secrets off its command line and off a dead agent's screen; the plain pty attach never sends Ctrl+\
- 72fd2be Keep chat anchored, follow renames, and fit the calmer Sessions page to the suite
- 2aa9461 Keep keys pressed while the attach client takes the Windows console back
- ece6193 Keep the full suite steady at 24 CPUs
- d3524f0 Keep the smoke test's lectern.exe out of the test's temp directory
- 040e22f Keep the two Python-compatibility shims in helpers apart
- 2467966 Lead the README with a quick start for each OS
- c9e9ea8 Let a phone on this Wi-Fi connect in one click, and add lectern phone
- d5e52e0 Let helpers ask the target's session backend about a pane
- 47ab82a List n deny and the attached approval keys in the terminal help
- de68b85 Lock the local runtime to its own browser, keep serve off the network without sign-in, and give every command its own help
- da57108 Make first sessions, terminal controls and phone pairing work by default
- 063011d Make the socket guard and plugin tests independent of drive paths, dialog timing and the device theme
- a7f5586 Merge branch 'connect-ui' into ptyhost
- 1e7243f Merge branch 'connect-ui' into ptyhost-win
- 919703c Merge branch 'connect-ui' into simple-tui
- 27b37d8 Merge branch 'ptyhost' into connect-ui
- 390c8c8 Merge branch 'ptyhost-helpers-hooks' into ptyhost
- d1d402e Merge branch 'ptyhost-helpers-native' into ptyhost
- 53daa8e Merge branch 'ptyhost-helpers-workspace' into ptyhost
- 88ff1e6 Merge branch 'ptyhost-win' into connect-ui
- 7ed44cc Merge branch 'simple-core-3' into connect-ui
- 696c238 Merge branch 'simple-docs' into connect-ui
- 99b5234 Merge branch 'simple-fe' into connect-ui
- cd00012 Merge branch 'simple-tui' into connect-ui
- 482aa11 Merge branch 'simple-tui-2' into connect-ui
- 162602a Merge branch 'simple-web' into connect-ui
- 22c298b Merge branch 'simple-web-2' into connect-ui
- 2dab27b Merge connect-ui into simple-web; Start an agent opens on the lectern up project
- 39bc5d3 Merge origin/main into connect-ui: one first-session, phone and navigation story
- d97f91e Move internal process records under docs/internal
- 7fdd670 Name either relay when a bridged dial ends early
- 292fbda Name lectern with forward slashes on Windows
- d4d18bb Narrow the Windows worktree gap in the PTY host d...
v2.6.2
Lectern 2.6.2 fixes two things in the terminal client:
- Double-click and right-click on file paths and links now work with tmux 3.7. Lectern read tmux's default mouse bindings in a way tmux 3.7 no longer answers, so its own bindings were silently skipped.
- Copying in an agent session reaches your system clipboard. Selections made in Claude Code (and tmux copy-mode) are passed through as OSC 52 to your terminal.
v2.6.1
Lectern 2.6.1 is a follow-up to 2.6.0 for the terminal client.
- Split into a project shell. In
lectern attach,Ctrl+] |(side by side) orCtrl+] -(stacked), or right-click → "Split: shell in project", opens a shell on the session's machine in the agent's current directory.lectern splitdoes the same from your own terminal's split key (kitty and WezTerm examples in docs/terminal-client.md). - Links win over agents that grab the mouse. Double-click or right-click on a detected file path or link reaches Lectern first, in
lectern attachand in the web terminal; everything else still goes to the agent. - Claude Code leaves the mouse to your terminal. Lectern starts Claude with
CLAUDE_CODE_DISABLE_MOUSE=1(a setting, on by default), so selecting, copying and clicking links work in Claude sessions. - The CLI finds the Lectern service on the same machine before falling back to a private local runtime.
- Revive no longer appears on sessions whose agent was restarted from the shell.
v2.6.0
Lectern 2.6.0 turns the terminal-and-phone control plane into a full workspace: edit, review, browse, track and merge without leaving Lectern, on desktop and phone, in six languages.
Highlights
- 33 agents. Claude Code, Codex and Gemini built in; Settings → Agents adds 30 more from a searchable catalog (OpenCode, Cursor, Copilot CLI, Grok, Amp, Kiro, Droid, Qwen, Kimi, Goose, Cline, Crush, Pi and more), with launch, model, resume and auto-approve flags checked against the real CLIs. Twelve catalog agents now reopen their exact conversation. → docs/agents.md
- Plugins. One package format for agents, MCP servers, skills, workflows, lifecycle hooks, sandbox providers, quick commands, themes and palette commands. Install from a folder, git or a marketplace; you approve exactly what a plugin can do, and it is pinned to what you approved. Claude Code plugins' skills and MCP servers install too. → docs/plugins.md
- Browser and Design Mode. A real browser beside each session, on desktop, phone and over the relay. Click any element to send its HTML, CSS and a cropped screenshot to the agent. Agents get browser tools you can watch and take over, plus opt-in computer use. → docs/browser.md
- Files and editor. Explorer with git colours and live updates, a full code editor, rich Markdown editing, viewers for PDF, CSV, notebooks, Mermaid and HTML, Go to file and project search, and clickable
file:linelinks in terminal output. → docs/files.md - Review and git. Side-by-side and image diffs, a merge-conflict resolver, line comments sent to the agent as one prompt, marks for lines the agent wrote, and stage or discard by line or hunk. → docs/review.md
- Tasks hub. Pull requests and issues from GitHub, GitLab, Bitbucket, Gitea/Forgejo and Azure DevOps, plus Linear and Jira: checks with failing logs, reviewers, confirmed merges, merge queues, and "resolve / fix checks with agent". → docs/trackers.md
- Workspace. Nested split layouts of any pane, saved layouts, a floating terminal, find in terminal output, 115 remappable shortcuts, light and dark themes, and English, Chinese, Japanese, Korean, Spanish and French. → docs/workspace.md
- Usage limits and accounts. Optional account swap moves a limited Claude or Codex conversation to your next signed-in account. Per-agent usage charts with an 80% warning. → docs/accounts.md
- Remote machines. Import hosts from
~/.ssh/config, jump hosts and security keys, port forwarding, downloads, "Open in VS Code / Cursor / Zed", and bring-your-own sandboxes (Proxmox, Docker, or your own scripts). → docs/ssh.md · docs/sandboxes.md - Click any file path or link an agent prints, even wrapped across lines or outside the project: the web terminal opens it (read-only outside the workspace); in
lectern attach, double-click opens PDFs in your PDF app and links in your browser on your own machine, and right-click downloads, copies or sends the path. → docs/terminal-client.md - Phone. Select text on the live terminal, a customizable key row, offline snapshot, swipe to approve or archive, notifications that clear on every device once decided, and optional dictation on your own server.
Also
- Race N agents: one prompt to 2–4 agents, then Compare + Judge, in three clicks.
- Kitty keyboard protocol: Shift+Enter inserts a new line in Claude Code in a Lectern terminal; through tmux this needs tmux 3.5 or newer.
- With no
LECTERN_API, the CLI now uses the Lectern service on the same machine before a private local runtime. - Sessions whose agent was restarted from the shell no longer show Revive by mistake.
- Fixes: a git-archive deadlock under load, a browser click that could hang for 60 s when a page closed itself, and a lost browser login on stop.
Android: the signed prototype APK lectern-android-0.2.1.apk is attached below (SHA-256 11f2ee2f…3b7925). It replaces 0.1.0, which opened in-app terminals incorrectly, and upgrades an installed 0.1.0 in place. See docs/android.md.
v2.5.1
What changed
- Adds guarded workshop recovery and private-review integrations, with runtime prerequisites checked before execution.
- Adds an experimental fixed-target GPU research lifecycle with lease-fenced execution and cleanup. The fixed target passed scoped hardware and controller-fixture checks, but production workload selection remains unavailable and execution still requires current runtime qualification. There is no general GPU selector or hard per-process GPU-memory limit, and this is not a claim of full workshop autonomy.
- Keeps release builds portable across Linux, macOS and Windows.
Android prototype
The signed Android prototype remains v0.1.0 and was built for v2.4.1; it was not rebuilt for this release. Download the APK · SHA-256 · Build from source.
Install
curl -fsSL https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.sh | sh
brew install JeremiahM37/tap/lectern
scoop bucket add jeremiahm37 https://github.com/JeremiahM37/scoop-bucket && scoop install lectern
docker run -p 127.0.0.1:9110:9110 -v lectern-data:/data ghcr.io/jeremiahm37/lectern:2.5.1
go install github.com/JeremiahM37/lectern/v2/cmd/lectern@v2.5.1Windows PowerShell: irm https://raw.githubusercontent.com/JeremiahM37/lectern/main/install.ps1 | iex. Linux .deb and .rpm, archives and checksums.txt are attached above.