opensessions

agent
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 970 GitHub stars
Code Warn
  • process.env — Environment variable access in apps/server/src/main.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This tool provides a sidebar pane for tmux that helps manage and monitor multiple terminal sessions, coding agents, and local tabs. It integrates directly into your existing tmux workflow to display live session states and repo breadcrumbs.

Security Assessment
The tool reads environment variables to function and runs a local HTTP API to serve its live session state, which is expected behavior for a tmux plugin. It does not request dangerous system permissions, and no hardcoded secrets were found in the codebase. However, it relies on executing shell scripts and interacts heavily with your terminal multiplexer. Because it runs locally, the overall risk is Low, though standard caution is always advised when running shell scripts directly from cloned repositories.

Quality Assessment
This is a highly active and well-regarded project. It received a push update today and has strong community trust, boasting 970 GitHub stars. There is a minor administrative discrepancy: the repository is missing a top-level license file in the directory, even though the README explicitly declares it as MIT licensed. As a developer, be aware that while the community intent is clearly open source, the missing file is a formal technical gap. The installation relies on TPM and the Bun JavaScript runtime, and a clean uninstallation script is explicitly provided to prevent lingering hooks or terminal glitching.

Verdict
Safe to use, though you should be aware of the technically missing license file before adopting it for enterprise purposes.
SUMMARY

tmux sidebar for coding agents — Amp, Claude Code, Codex, OpenCode. Per-thread markers, local HTTP API, live session state.

README.md

Part of the Ataraxy Labs stack — agent-native infrastructure for software development. See also: sem (semantic version control) · weave (entity-level merge driver) · inspect (semantic code review).

Read the manifesto: https://ataraxy-labs.com/#thesis · Essays: https://ataraxy-labs.com/blogs · LLMs: https://ataraxy-labs.com/llms.txt

opensessions

License: MIT
Star History

tmux is all you need. make tmux great again :)

amp-img-e686694168e21738-aesthetic

opensessions is a sidebar for tmux when your sessions, agents, and localhost tabs start multiplying.

It lives inside your existing tmux workflow instead of replacing it: one small pane for session switching, agent state, repo breadcrumbs, and quick jumps back into the right terminal.

tmux is the only supported mux today. There is older zellij integration code in the repo, but it is not stable enough to document as supported; we are looking for maintainers who want to help bring it back to that bar.

Install With TPM

Requirements:

Add this to ~/.tmux.conf:

set -g @plugin 'Ataraxy-Labs/opensessions'

Then reload tmux and install plugins:

tmux source-file ~/.tmux.conf
~/.tmux/plugins/tpm/bin/install_plugins

Open the sidebar with prefix o → s.

TPM clones the repo into ~/.tmux/plugins/opensessions. It does not install a standalone opensessions binary. opensessions runs from that checkout with your local bun installation.

If you want the same setup as a single shell command:

grep -q "Ataraxy-Labs/opensessions" ~/.tmux.conf 2>/dev/null || printf '\nset -g @plugin '\''Ataraxy-Labs/opensessions'\''\n' >> ~/.tmux.conf && tmux source-file ~/.tmux.conf && ~/.tmux/plugins/tpm/bin/install_plugins

Update

Use TPM's built-in update (prefix + U) or run:

~/.tmux/plugins/tpm/bin/update_plugins opensessions

The plugin automatically restarts the server on update so it picks up the new code. Toggle the sidebar back on with prefix o → s if it was open.

Uninstall

Run the uninstall script before removing the plugin files — it cleans up tmux hooks, keybindings, sidebar panes, and environment variables that would otherwise persist and cause glitching:

sh ~/.tmux/plugins/opensessions/integrations/tmux-plugin/scripts/uninstall.sh

Then remove the set -g @plugin 'Ataraxy-Labs/opensessions' line from ~/.tmux.conf and run prefix + alt + u (TPM uninstall).

Support Status

  • @opensessions/mux-tmux and the tmux plugin flow are supported.
  • @opensessions/mux-zellij is still experimental.
  • The repo is organized for contributors around runnable apps, reusable packages, and host integrations.

Today

  • Live agent state across sessions for Amp, Claude Code, Codex, and OpenCode.
  • Per-thread unseen markers for done, error, and interrupted states.
  • Session context in the UI: branch in the list, working directory in the detail panel, thread names, and detected localhost ports.
  • Programmatic metadata API: agents and scripts push status, progress, and logs to the sidebar via HTTP.
  • Fast switching with j/k, arrows, Tab, 1-9, session reordering, hide/restore, creation, and kill actions.
  • prefix o → s and prefix o → t for sidebar focus and toggle, prefix o → e for sidebar-safe even-horizontal layout in the current window, prefix o → 1 through 9 for quick switching, optional no-prefix shortcuts, in-app theme switching, and plugin hooks for more mux providers or watchers.
  • Bun workspace, source-first execution, and a local server on 127.0.0.1:7391.

Programmatic API

Scripts and agents can push custom metadata to the sidebar over HTTP — no binary needed:

# Set a status pill on a session
curl -X POST http://127.0.0.1:7391/set-status \
  -H 'content-type: application/json' \
  -d '{"session":"my-app","text":"Deploying","tone":"warn"}'

# Set progress
curl -X POST http://127.0.0.1:7391/set-progress \
  -H 'content-type: application/json' \
  -d '{"session":"my-app","current":3,"total":10,"label":"services"}'

# Push a log entry
curl -X POST http://127.0.0.1:7391/log \
  -H 'content-type: application/json' \
  -d '{"session":"my-app","message":"Tests passed","source":"ci","tone":"success"}'

Endpoints: /set-status, /set-progress, /log, /clear-log, /notify

Tones: neutral, info, success, warn, error — each with a distinct icon and color.

Full reference: docs/reference/programmatic-api.md

Local Development

Smoke test from a local clone:

git clone https://github.com/Ataraxy-Labs/opensessions.git
cd opensessions
bun install
bun test
bun run start:tui

That starts the sidebar client and auto-launches the server if needed.

For the full tmux workflow with keybindings, troubleshooting, and configuration options, follow the guide below.

Docs

A Few Concrete Bits

  • Session ordering is persisted in ~/.config/opensessions/session-order.json.
  • Amp watcher reads ~/.local/share/amp/threads/*.json and clears unseen state from Amp's session.json when a thread becomes seen there.
  • Claude Code watcher reads JSONL transcripts in ~/.claude/projects/.
  • Codex watcher reads transcript JSONL files in ~/.codex/sessions/ or $CODEX_HOME/sessions/ and resolves sessions from turn_context.cwd.
  • OpenCode watcher polls the SQLite database in ~/.local/share/opencode/opencode.db.
  • Hidden sidebars are stashed in a tmux session named _os_stash, so they can come back without restarting the sidebar process.
  • Clicking a detected port opens http://localhost:<port>.

Repo Layout

Apps

  • apps/server — Bun server bootstrap that wires together built-in mux providers and agent watchers
  • apps/tui — OpenTUI sidebar client built with Solid, plus the canonical sidebar launcher script

Packages

  • packages/runtime — shared runtime logic: tracker, config, plugin loader, server internals, themes, ordering
  • packages/mux/contract — mux contracts and capability guards exposed as @opensessions/mux
  • packages/mux/providers/tmux — tmux provider exposed as @opensessions/mux-tmux
  • packages/mux/providers/zellij — experimental zellij provider exposed as @opensessions/mux-zellij
  • packages/mux/tmux-sdk — lower-level typed tmux bindings used by tmux-aware code

Integrations

  • opensessions.tmux — root TPM entrypoint for users
  • integrations/tmux-plugin — tmux-facing scripts and host integration glue

Current Caveats

  • The app is effectively pinned to 127.0.0.1:7391 today.
  • theme, sidebarWidth, sidebarPosition, plugins, and mux are wired through the runtime; other typed config fields are not all live yet.
  • Inline theme objects exist in core, but the running server persists and broadcasts theme names.

Star History

Star History Chart

License

MIT

Reviews (0)

No results found