Claude
Skills
Sign in
Back

zellij-helper

Included with Lifetime
$97 forever

Zellij terminal multiplexer for session management, layouts, and pane operations When user mentions Zellij, terminal multiplexer, zellij commands, sessions, panes, layouts, or tabs

General

What this skill does


# Zellij Helper Agent

## What's New in Zellij 2025 (v0.42-0.43)

- **Web Client**: Built-in web server for browser access with authentication tokens
- **Stacked Resize**: Auto-stack panes when resizing for better space management
- **Pinned Floating Panes**: Keep floating panes always-on-top with toggle
- **Multiple Pane Selection**: Alt+click or Alt+p to select and operate on multiple panes
- **Session Resurrection**: Automatic serialization and resume after crash/reboot
- **New Themes**: ao, vesper, night-owl, iceberg, onedark, lucario

## Overview

Zellij is a modern terminal multiplexer with a focus on user experience, WebAssembly plugins, and KDL-based configuration. It provides sessions, tabs, and panes for organizing terminal workflows, with layouts for reproducible workspace setups.

## CLI Commands

### Session Management

```bash
# Start new session
zellij

# Start named session
zellij -s my-session

# Start with layout
zellij --layout dev

# List sessions
zellij list-sessions
zellij ls

# Attach to session
zellij attach my-session
zellij a my-session

# Attach or create if doesn't exist
zellij attach -c my-session

# Kill session
zellij kill-session my-session
zellij k my-session

# Kill all sessions
zellij kill-all-sessions
zellij ka

# Delete session (remove from resurrection)
zellij delete-session my-session
zellij d my-session

# Delete all sessions
zellij delete-all-sessions
zellij da
```

### Setup Commands

```bash
# Validate configuration
zellij setup --check

# Dump default config
zellij setup --dump-config > config.kdl

# Dump specific layout
zellij setup --dump-layout default

# Generate shell completions
zellij setup --generate-completion bash
zellij setup --generate-completion zsh
zellij setup --generate-completion fish

# Generate autostart script
zellij setup --generate-auto-start bash
```

### Zellij Run

Run commands in new panes from the shell:

```bash
# Run command in new pane
zellij run -- htop

# Run in floating pane
zellij run -f -- npm run dev

# Run in specific direction
zellij run -d right -- tail -f /var/log/syslog

# Close pane on command exit
zellij run -c -- make build

# Run in-place (replace current pane)
zellij run -i -- vim file.txt

# Start suspended (press Enter to run)
zellij run -s -- dangerous-command

# Custom pane name
zellij run -n "Build Output" -- cargo build

# Set working directory
zellij run --cwd /path/to/project -- ls -la

# Floating pane with size and position
zellij run -f --width 50% --height 30 -x 10% -y 5 -- htop
```

### Zellij Edit

Open files in editor panes:

```bash
# Open file in $EDITOR
zellij edit file.txt

# Open at specific line
zellij edit --line-number 42 src/main.rs

# Open in floating pane
zellij edit -f config.yaml

# Open in-place
zellij edit -i notes.md

# With direction
zellij edit -d down Makefile
```

### Zellij Actions

Control Zellij programmatically:

```bash
# Execute action
zellij action <action-name>

# Pane actions
zellij action new-pane
zellij action new-pane -d right
zellij action new-pane -f  # floating
zellij action close-pane
zellij action toggle-fullscreen
zellij action toggle-floating-panes
zellij action toggle-pane-frames
zellij action toggle-pane-embed-or-floating
zellij action move-pane
zellij action move-pane -d left

# Tab actions
zellij action new-tab
zellij action new-tab -n "Dev"
zellij action new-tab -l dev-layout
zellij action close-tab
zellij action go-to-tab 3
zellij action go-to-tab-name "Dev"
zellij action go-to-next-tab
zellij action go-to-previous-tab
zellij action rename-tab "New Name"

# Navigation
zellij action focus-next-pane
zellij action focus-previous-pane
zellij action move-focus left
zellij action move-focus right
zellij action move-focus up
zellij action move-focus down

# Scrolling
zellij action scroll-up
zellij action scroll-down
zellij action page-scroll-up
zellij action page-scroll-down
zellij action half-page-scroll-up
zellij action half-page-scroll-down
zellij action scroll-to-bottom

# Resize
zellij action resize increase left
zellij action resize decrease right
zellij action resize increase up 5
zellij action resize decrease down 10

# Utility actions
zellij action dump-screen /tmp/screen.txt
zellij action dump-layout > current-layout.kdl
zellij action edit-scrollback
zellij action toggle-active-sync-tab
zellij action write "echo hello"
zellij action write-chars "hello world"

# Plugin actions
zellij action launch-or-focus-plugin file:~/.config/zellij/plugins/my-plugin.wasm
zellij action start-or-reload-plugin file:~/.config/zellij/plugins/my-plugin.wasm
```

## Actions Reference

### Pane Operations

| Action                          | Description                       |
| ------------------------------- | --------------------------------- |
| `new-pane`                      | Create new pane                   |
| `close-pane`                    | Close current pane                |
| `move-pane`                     | Move pane in direction            |
| `resize`                        | Resize pane                       |
| `toggle-fullscreen`             | Fullscreen current pane           |
| `toggle-floating-panes`         | Show/hide floating panes          |
| `toggle-pane-embed-or-floating` | Convert between embedded/floating |
| `toggle-pane-frames`            | Show/hide pane borders            |
| `toggle-pane-pinned`            | Pin floating pane on top          |
| `stack-panes`                   | Stack panes in direction          |

### Tab Operations

| Action               | Description                   |
| -------------------- | ----------------------------- |
| `new-tab`            | Create new tab                |
| `close-tab`          | Close current tab             |
| `go-to-tab`          | Go to tab by index            |
| `go-to-tab-name`     | Go to tab by name             |
| `go-to-next-tab`     | Next tab                      |
| `go-to-previous-tab` | Previous tab                  |
| `rename-tab`         | Rename current tab            |
| `toggle-tab`         | Toggle to previous tab        |
| `break-pane`         | Move pane to new tab          |
| `break-pane-left`    | Move pane to new tab on left  |
| `break-pane-right`   | Move pane to new tab on right |

### Navigation

| Action                | Description              |
| --------------------- | ------------------------ |
| `focus-next-pane`     | Focus next pane          |
| `focus-previous-pane` | Focus previous pane      |
| `move-focus`          | Focus pane in direction  |
| `move-focus-or-tab`   | Focus pane or switch tab |
| `clear`               | Clear terminal screen    |

### Session & Mode

| Action                 | Description         |
| ---------------------- | ------------------- |
| `detach`               | Detach from session |
| `quit`                 | Exit Zellij         |
| `switch-mode`          | Change input mode   |
| `previous-swap-layout` | Previous layout     |
| `next-swap-layout`     | Next layout         |

## Layouts

### Loading Layouts

```bash
# Start with layout
zellij --layout my-layout

# Create new tab with layout
zellij action new-tab -l my-layout

# Dump current layout
zellij action dump-layout > layout.kdl
```

### Layout File Format (KDL)

```kdl
// ~/.config/zellij/layouts/dev.kdl
layout {
    // Default tab template
    default_tab_template {
        pane size=1 borderless=true {
            plugin location="zellij:tab-bar"
        }
        children
        pane size=2 borderless=true {
            plugin location="zellij:status-bar"
        }
    }

    // First tab - code editing
    tab name="Code" focus=true {
        pane split_direction="vertical" {
            pane command="nvim" {
                args "."
            }
            pane split_direction="horizontal" size="30%" {
                pane command="lazygit"
                pane name="Terminal"
            }
        }
    }

    // Second tab - services
    tab name="Services" {
        pane split_direction="h

Related in General