Files
jaredandClaude Opus 5.5 527cb1fda2
build-deb / Lint, test, package (push) Successful in 2m0s
build-deb / Notify on failure (push) Skipped
feat: free-form sessions, rename/end from the panel, live Claude Context (0.2.0)
- Sessions no longer need a project folder: any name works and starts in
  DEVDESK_DEFAULT_DIR unless it matches a project; `devdesk new NAME [PROJECT]`.
- Rename (✎) and end/forget (×) sessions from the Sessions panel, plus
  `devdesk rename`. The browser runs them as `devdesk attach --new|--rename|--end`
  through ttyd. Renames keep the running Claude and its recorded conversation:
  the hook, the run-wrapper and the statusline ask tmux for the current name.
- Claude Context panel is live: devdesk-statusline snapshots model,
  context-window use, cost and edits per session, which --list reports;
  Claude's footer gets a one-line summary. The panel now sits under Sessions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 03:03:09 -04:00

69 lines
1.9 KiB
Groff

.TH DEVDESK 1 "October 2026" "devdesk" "User Commands"
.SH NAME
devdesk \- persistent Claude Code sessions in tmux, shared by the browser and SSH
.SH SYNOPSIS
.B devdesk attach
.RI [ NAME ]
.br
.B devdesk new
.I NAME
.RI [ PROJECT ]
.br
.B devdesk rename
.I OLD NEW
.br
.B devdesk ls
.br
.B devdesk pick
.br
.B devdesk end
.I NAME
.SH DESCRIPTION
.B devdesk
manages the named sessions served at https://dev.lotusguild.org. Each session is
a tmux session on the DevDesk server (\fI/run/devdesk/tmux.sock\fR, run by
\fBdevdesk-tmux.service\fR) with a \fIclaude\fR window and a \fIshell\fR window,
rooted in a project directory under \fBDEVDESK_PROJECTS_ROOT\fR.
.PP
Claude's conversation ID is recorded per session, so after a reboot the session
resumes its own conversation.
.SH COMMANDS
.TP
.B attach \fR[\fINAME\fR]
Attach to session \fINAME\fR, creating it if needed. Names matching a project
folder (or its slug: \(lqtest code\(rq becomes \fBtest-code\fR) start there; any
other name starts in \fBDEVDESK_DEFAULT_DIR\fR. Without \fINAME\fR, opens the picker.
.TP
.B attach --list
Print sessions and projects as JSON (used by the web UI).
.TP
.B new \fINAME\fR [\fIPROJECT\fR]
Create session \fINAME\fR detached, in \fIPROJECT\fR's folder if given, otherwise
in the folder its name maps to (a project of that name, or \fBDEVDESK_DEFAULT_DIR\fR).
.TP
.B rename \fIOLD NEW\fR
Rename a running or dormant session; Claude keeps running and its recorded
conversation moves with it.
.TP
.B ls
List running (\(bu) and dormant (\(ci) sessions.
.TP
.B pick
Interactive picker (fzf).
.TP
.B end \fINAME\fR
Stop the session and forget its recorded conversation.
.SH FILES
.TP
.I /etc/devdesk/env
Port, projects root, Claude binary and arguments, Remote Control switch.
.TP
.I /etc/devdesk/secret.env
ttyd credential; the reverse proxy must send it as HTTP basic auth.
.TP
.I /var/lib/devdesk/registry.json
Session to directory and Claude session ID mapping.
.SH SEE ALSO
.BR tmux (1),
.BR claude (1)