feat: add Zellij as alternative terminal multiplexer#23
Open
pmarsceill wants to merge 1 commit intomainfrom
Open
feat: add Zellij as alternative terminal multiplexer#23pmarsceill wants to merge 1 commit intomainfrom
pmarsceill wants to merge 1 commit intomainfrom
Conversation
Add support for Zellij as an alternative to tmux for managing agent sessions. Users can configure their preferred multiplexer via config file, environment variable (MAP_MULTIPLEXER), or it defaults to tmux. Changes: - Create Multiplexer interface abstracting session management operations - Implement TmuxMultiplexer with existing tmux functionality - Implement ZellijMultiplexer with Zellij CLI commands - Refactor ProcessManager to use Multiplexer interface - Add 'multiplexer' config option to Viper defaults - Update CLI commands (watch, clean, up) to support both multiplexers - Add multiplexer field to proto messages for status reporting Closes #14 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
New files:
internal/daemon/multiplexer.go- Interface definition and factoryinternal/daemon/multiplexer_tmux.go- Tmux implementationinternal/daemon/multiplexer_zellij.go- Zellij implementationModified files:
internal/daemon/process.go- Refactored to use Multiplexer interfaceinternal/daemon/server.go- Initialize multiplexer from configinternal/cli/config.go- Addedmultiplexerdefaultinternal/cli/root.go- AddedgetMultiplexer()helperinternal/cli/up.go- Pass multiplexer to daemon configinternal/cli/agent_watch.go- Support both multiplexers with appropriate keyboard hintsinternal/cli/clean.go- Clean sessions from both multiplexersproto/map/v1/daemon.proto- Added multiplexer field to status messagesREADME.md- Documentation for multiplexer configurationConfiguration
The multiplexer can be configured via (in priority order):
MAP_MULTIPLEXER=zellij~/.mapd/config.yamlwithmultiplexer: zellijtmuxTest plan
MAP_MULTIPLEXER=zellij map upmap config set multiplexer zellijmap agent watchshows correct keyboard shortcuts for each multiplexermap cleanremoves sessions from both multiplexersmake testandgolangci-lint runCloses #14
🤖 Generated with Claude Code