|
| 1 | +--- |
| 2 | +title: "Frequently Asked Questions" |
| 3 | +description: "Common questions about Zellij terminal workspace: what it is, how it works, keyboard shortcuts, layouts, plugins, and more." |
| 4 | +--- |
| 5 | + |
| 6 | +## What is Zellij? |
| 7 | + |
| 8 | +Zellij is a terminal workspace aimed at developers, ops-oriented people, and anyone who loves the terminal. It's sometimes called a "terminal multiplexer" - a tool that allows you to manage multiple terminal sessions, panes, and tabs from a single interface without tying you to a specific terminal emulator. |
| 9 | + |
| 10 | +Zellij is designed around the philosophy that you shouldn't have to sacrifice simplicity for power. It provides an excellent out-of-the-box experience while offering advanced features like floating panes, stacked panes, layouts, session resurrection, plugins, and session management. |
| 11 | + |
| 12 | +## How is Zellij different from a regular terminal? |
| 13 | + |
| 14 | +A regular terminal emulator (like Alacritty, iTerm2, or GNOME Terminal) provides a single shell session. Zellij runs *inside* your terminal and provides: |
| 15 | + |
| 16 | +- **Multiple panes**: Split your terminal into multiple sections, each running different commands |
| 17 | +- **Tabs**: Organize related panes into tabs for different projects or tasks |
| 18 | +- **Sessions**: Create named sessions that persist even if you close your terminal |
| 19 | +- **Layouts**: Automate your workspace setup with pre-configured commands and pane arrangements |
| 20 | +- **Plugins**: Extend functionality with WebAssembly plugins |
| 21 | + |
| 22 | +While some terminals provide a limited amount of these features on their own, Zellij is terminal agnostic - allowing you to choose a terminal based on its own strengths (font and ligature rendering, GPU acceleration, integration with your desktop environment, etc.) rather than its pane/tab management features. |
| 23 | + |
| 24 | +Think of Zellij as adding a powerful workspace layer on top of your existing terminal. |
| 25 | + |
| 26 | +## Do I need to learn new keyboard shortcuts? |
| 27 | + |
| 28 | +Zellij comes out-of-the-box with mneumonic shortcuts, designed to be easy to remember. The status-bar also displays the available shortcuts on-screen, so you don't need to remember anything. After using Zellij for only a few days, users usually get used to them and don't want to change anything. |
| 29 | + |
| 30 | +That being said, all shortcuts are configurable and can be tailored to your needs. See [keybindings configuration](/documentation/keybindings.html) for more info. |
| 31 | + |
| 32 | +Some users, especially those who use terminal editors such as `vim` might encounter keybind collisions, for those Zellij provides a [non-colliding, unlock first](/tutorials/colliding-keybindings) keybinding preset. |
| 33 | + |
| 34 | +## Can I use Zellij with my existing terminal setup? |
| 35 | + |
| 36 | +Yes! Zellij works with any terminal emulator and doesn't require changing your existing setup: |
| 37 | + |
| 38 | +- Use your favorite terminal emulator (Alacritty, iTerm2, Konsole, etc.) |
| 39 | +- Keep your existing shell (bash, zsh, fish) |
| 40 | +- Use your configured `$EDITOR` (vim, neovim, emacs, helix) |
| 41 | +- Maintain your dotfiles and shell customizations |
| 42 | + |
| 43 | +Run `zellij` in your terminal to start and that's it. You can even configure your terminal to launch Zellij automatically. See our [session management tutorial](/tutorials/session-management) for integration examples. |
| 44 | + |
| 45 | +## What are layouts and why should I use them? |
| 46 | + |
| 47 | +Layouts are configuration files (written in [KDL](https://kdl.dev)) that describe your workspace structure: |
| 48 | + |
| 49 | +- Define which panes to open and where |
| 50 | +- Specify commands to run in each pane |
| 51 | +- Open files in your editor automatically |
| 52 | +- Configure tabs for different aspects of your project |
| 53 | +- Include plugins like tab bars and status bars |
| 54 | + |
| 55 | +**Use cases:** |
| 56 | +- Start a development environment with editor, test runner, and logs |
| 57 | +- Create project-specific layouts for different repositories |
| 58 | +- Share workspace configurations with team members |
| 59 | +- Automate repetitive setup tasks |
| 60 | + |
| 61 | +Layouts can dramatically reduce the time spent setting up your workspace each time you start working. Learn how to create them in our [layouts tutorial](/tutorials/layouts). |
| 62 | + |
| 63 | +## Can I use Zellij in the browser? |
| 64 | + |
| 65 | +Yes! Zellij includes a built-in web server: |
| 66 | + |
| 67 | +- Access Zellij sessions from any modern browser |
| 68 | +- No terminal emulator required |
| 69 | +- Share sessions with teammates via URL |
| 70 | +- Built-in authentication for security |
| 71 | +- Seamlessly switch between terminal and browser |
| 72 | + |
| 73 | +The web client makes Zellij accessible anywhere, perfect for: |
| 74 | +- Remote access to your development environment |
| 75 | +- Pair programming and collaboration |
| 76 | +- Using Zellij on devices without a terminal emulator |
| 77 | + |
| 78 | +See our [web client tutorial](/tutorials/web-client) for setup instructions. |
| 79 | + |
| 80 | +The web server **must be explicitly started** and configured with an HTTPS certificate and token authentication. For those who don't want it at all, Zellij also provides a pre-compiled version without the web server capability. |
| 81 | + |
| 82 | +## How do plugins work? |
| 83 | + |
| 84 | +Zellij's plugin system uses WebAssembly (WASM), allowing plugins written in any language that compiles to WASM: |
| 85 | + |
| 86 | +**Built-in plugins:** |
| 87 | +- Tab bar and status bar (the Zellij UI) |
| 88 | +- Strider (filepicker) |
| 89 | +- Session manager |
| 90 | +- Multiple-pane selection interface |
| 91 | +- Configuration screen |
| 92 | + |
| 93 | +**Custom plugins:** |
| 94 | +- Write plugins in Rust, Go, AssemblyScript, or other WASM-compatible languages |
| 95 | +- Access Zellij state and events |
| 96 | +- Render custom UIs |
| 97 | +- Respond to user input |
| 98 | +- Distribute via GitHub or other hosting as single `.wasm` files |
| 99 | + |
| 100 | +Rust has first-class support with official SDK and scaffolding tools. Check out our [plugin development tutorial](/tutorials/developing-a-rust-plugin) to get started. |
| 101 | + |
| 102 | +## Is Zellij actively maintained? |
| 103 | + |
| 104 | +Yes! Zellij is actively developed full-time by [Aram Drevekenin](https://poor.dev) with support from the community and sponsors: |
| 105 | + |
| 106 | +- Regular releases with new features |
| 107 | +- Responsive bug fixes and support |
| 108 | +- Active community on GitHub and social media |
| 109 | +- Comprehensive documentation and tutorials |
| 110 | + |
| 111 | +Zellij will always remain free and open-source. If you find it valuable, consider [supporting the Zellij developer](https://github.com/sponsors/imsnif) to help maintain this full-time effort. |
| 112 | + |
| 113 | +## How do I handle keyboard shortcut conflicts? |
| 114 | + |
| 115 | +If Zellij shortcuts conflict with applications running inside (like vim), use the "Unlock-First (non-colliding)" preset: |
| 116 | + |
| 117 | +1. Press `Ctrl o` to enter Session mode |
| 118 | +2. Press `c` to open the Configuration screen |
| 119 | +3. Press `Tab` to navigate to "Change Mode Behavior" |
| 120 | +4. Select "Unlock-First (non-colliding)" and press `Enter` |
| 121 | + |
| 122 | +This preset requires unlocking the interface before accessing Zellij modes, preventing conflicts. See our detailed [colliding keybindings tutorial](/tutorials/colliding-keybindings). |
| 123 | + |
| 124 | +## Can I customize the appearance? |
| 125 | + |
| 126 | +Yes, Zellij supports theming and configuration: |
| 127 | + |
| 128 | +- Choose from built-in color themes |
| 129 | +- Create custom themes |
| 130 | +- Configure UI components (tab bar, status bar) |
| 131 | +- Adjust frame colors and borders |
| 132 | +- Control UI visibility and layout |
| 133 | + |
| 134 | +Configuration is stored in `~/.config/zellij/config.kdl` using the KDL format. See the [theme documentation](/documentation/themes.html) for details. |
| 135 | + |
| 136 | +## How does Zellij compare to tmux or screen? |
| 137 | + |
| 138 | +Zellij offers similar workspace management capabilities as tmux and screen but with modern design choices: |
| 139 | + |
| 140 | +**Key differences:** |
| 141 | +- **UI**: Zellij provides an intuitive UI with status bar and visual feedback |
| 142 | +- **Floating and stackd panes**: First-class support for multiple floating windows and vertically stacked panes |
| 143 | +- **Layouts**: More powerful automation with command panes and templates, built-in |
| 144 | +- **Plugins**: Extensible via WebAssembly, does not rely on locally installed scripts |
| 145 | +- **Web client**: Built-in browser access |
| 146 | +- **True Multiplayer**: Allows multiple users to connect to the same session, each getting their own colored cursor |
| 147 | +- **Beginner-friendly**: Works great out of the box |
| 148 | + |
| 149 | +Zellij aims to provide power without sacrificing simplicity. See [features](/features) for a non-exhaustive list of unique features. |
| 150 | + |
| 151 | +That being said, Zellij does not consider itself a tmux or screen replacement. Read more about its mission [here](https://poor.dev/blog/why-zellij/). |
| 152 | + |
| 153 | +## What operating systems does Zellij support? |
| 154 | + |
| 155 | +Zellij supports: |
| 156 | +- **Linux**: All major distributions |
| 157 | +- **macOS**: Intel and Apple Silicon |
| 158 | +- **Windows**: Via WSL (Windows Subsystem for Linux) |
| 159 | + |
| 160 | +Pre-built binaries are available for most platforms. See the [installation documentation](/documentation/installation.html) for details. |
| 161 | + |
| 162 | +## How do I get help or report issues? |
| 163 | + |
| 164 | +- **Documentation**: Start with the [official documentation](/documentation) |
| 165 | +- **Tutorials**: Watch [screencasts and tutorials](/screencasts) |
| 166 | +- **GitHub Issues**: Report bugs or request features at [github.com/zellij-org/zellij/issues](https://github.com/zellij-org/zellij/issues) |
| 167 | +- **Discussions**: Ask questions in [GitHub Discussions](https://github.com/zellij-org/zellij/discussions) |
| 168 | +- **Social Media**: Follow [@zellij](https://hachyderm.io/@zellij) on Mastodon or [Bluesky](https://bsky.app/profile/zellij-dev.bsky.social) |
| 169 | + |
| 170 | +The Zellij community is friendly and responsive to questions and feedback. |
| 171 | + |
| 172 | +## Can I contribute to Zellij? |
| 173 | + |
| 174 | +Absolutely! Contributions are welcome in many forms: |
| 175 | + |
| 176 | +- **Code contributions**: Submit pull requests on GitHub |
| 177 | +- **Documentation**: Improve guides and tutorials |
| 178 | +- **Bug reports**: Help identify and fix issues |
| 179 | +- **Feature requests**: Share ideas for improvements |
| 180 | +- **Community support**: Answer questions in discussions |
| 181 | +- **Financial support**: [supporting the Zellij developer](https://github.com/sponsors/imsnif) |
| 182 | + |
| 183 | +Check the [contributing guidelines](https://github.com/zellij-org/zellij/blob/main/CONTRIBUTING.md) to get started. |
| 184 | + |
| 185 | +## Is there a quick way to try Zellij without installing? |
| 186 | + |
| 187 | +Yes! You can try Zellij directly in your browser without any installation: |
| 188 | + |
| 189 | +Visit [zellij.dev/documentation/installation.html#try-zellij-without-installing](/documentation/installation.html) for instructions on accessing the demo instance. |
| 190 | + |
| 191 | +For local installation, you can also use: |
| 192 | +```bash |
| 193 | +bash <(curl -L zellij.dev/launch) |
| 194 | +``` |
| 195 | + |
| 196 | +This downloads and runs Zellij temporarily without permanent installation. |
0 commit comments