Agent computer: terminal (tmux + drives + tabs), Obsidian vault, UI polish
Terminal app (xterm ⇄ WebSocket ⇄ per-agent themed container):
- zsh + oh-my-zsh + powerlevel10k image (agent-terminal), runs as uid 65532 to
share read-write ownership of the file-drive volume with the server.
- Interactive PTY in cm-sandbox (bollard exec tty/attach + resize) + a
TerminalManager; ticket-authed WS bridge routed straight to the backend via a
Traefik PathRegexp(/ws) rule. MOTD greets the user by name.
- tmux resumable sessions; multi-tab (one tmux session per tab, same container),
drag-to-reorder, rename, and a Save that persists named tabs to the server
(terminal_tabs, migration 0014) so they survive logout / a new device.
- Files drives mounted per-agent (subpath) at ~/drives/{documents,received,
shared}; a reconciler keeps the Files app's index in sync with terminal writes.
Storage moved to a shared `filedata` volume (CLAWMATES_STORAGE__DATA_DIR).
Obsidian vault (a markdown "second brain" per agent):
- New `vault` FileDrive (migration 0015) mounted into the terminal at ~/obsidian;
a file-content read route; a purple Obsidian tile + a vault viewer app.
Computer UI:
- Draggable computer-panel width (min = phone preset) keeping the size presets.
- Green Terminal glyph, "Claw Chat" → "Chat", colored gradient-outline app icons.
- Agent page: avatar↔activity-grid spacing + larger, uniform section fonts with
colored section-tinted tag chips.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
671df7c622
commit
e61724ff82
@@ -0,0 +1,33 @@
|
||||
# oh-my-zsh + powerlevel10k for the agent Terminal app.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
|
||||
|
||||
source "$ZSH/oh-my-zsh.sh"
|
||||
|
||||
# powerlevel10k prompt config (baked, no interactive wizard).
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
|
||||
# Friendly defaults.
|
||||
export EDITOR=nano
|
||||
export CLICOLOR=1
|
||||
alias ll='ls -alFh --color=auto'
|
||||
alias la='ls -A --color=auto'
|
||||
alias l='ls -CF --color=auto'
|
||||
alias gs='git status'
|
||||
|
||||
# Runtime MOTD. CLAWMATES_USER is injected per session by the WS bridge, so the
|
||||
# greeting is personalised at connect time without rebuilding the image.
|
||||
if [[ -n "$CLAWMATES_USER" ]]; then
|
||||
print -P ""
|
||||
print -P " %F{45}╭─%f %BWelcome %F{208}${CLAWMATES_USER}%f%b, to your %F{45}clawmates%f terminal"
|
||||
print -P " %F{45}│%f %F{244}themed zsh · oh-my-zsh · powerlevel10k · tmux (resumable)%f"
|
||||
if [[ -d ~/drives ]]; then
|
||||
print -P " %F{45}╰─%f %F{244}your Files drives are in %F{45}~/drives%f %F{244}(documents · received · shared)%f"
|
||||
else
|
||||
print -P " %F{45}╰─%f %F{244}isolated container%f"
|
||||
fi
|
||||
print -P ""
|
||||
else
|
||||
print -P "%F{45}clawmates%f terminal — %F{244}themed zsh in an isolated container%f"
|
||||
fi
|
||||
Reference in New Issue
Block a user