{"id":47353621,"url":"https://github.com/scottames/zellij-status","last_synced_at":"2026-04-01T17:46:55.161Z","repository":{"id":344023946,"uuid":"1169581542","full_name":"scottames/zellij-status","owner":"scottames","description":"A configurable Zellij plugin with a styled status bar, vertical or horizontal, and notifications","archived":false,"fork":false,"pushed_at":"2026-03-27T01:26:12.000Z","size":911,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T06:48:18.190Z","etag":null,"topics":["notifications","rust","status-bar","terminal-multiplexer","vertical-tabs","wasm","zellij","zellij-plugin"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottames.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-28T22:34:30.000Z","updated_at":"2026-03-27T01:26:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/scottames/zellij-status","commit_stats":null,"previous_names":["scottames/zellij-status"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/scottames/zellij-status","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottames%2Fzellij-status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottames%2Fzellij-status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottames%2Fzellij-status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottames%2Fzellij-status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottames","download_url":"https://codeload.github.com/scottames/zellij-status/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottames%2Fzellij-status/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["notifications","rust","status-bar","terminal-multiplexer","vertical-tabs","wasm","zellij","zellij-plugin"],"created_at":"2026-03-18T01:26:24.365Z","updated_at":"2026-04-01T17:46:55.156Z","avatar_url":"https://github.com/scottames.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zellij-status\n\nA Zellij plugin that combines vertical tabs, styled status bars, and\nnotification tracking into one WASM binary.\n\nZellij-status unifies ideas from three amazing plugins\n([`zjstatus`](https://github.com/dj95/zjstatus),\n[`zellij-vertical-tabs`](https://github.com/cfal/zellij-vertical-tabs), and\n[`zellij-attention`](https://github.com/KiryuuLight/zellij-attention), a\nsoft-fork of all three) while supporting both horizontal and vertical layouts\nwith KDL-only configuration.\n\n## Features\n\n- **Layout modes**: horizontal status bar and vertical sidebar\n- **Widgets**: tabs, mode, session, datetime, notifications, swap layout,\n  command output, and pipe-fed external status\n- **Styling**: format strings with ANSI attributes\n  (`#[fg=...,bg=...,bold,fill]`), color aliases, and cap transitions\n- **Layout control**: indexed sections, split rows (`_left`/`_right`),\n  alignment, and precedence-based hiding on narrow terminals\n- **Interaction**: mouse tab switching, scroll navigation, and per-pane\n  notifications cleared on focus\n\n## Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"100%\"\u003e\n        \u003cimg src=\"docs/assets/default.png\" alt=\"Default horizontal status bar\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cstrong\u003eHorizontal\u003c/strong\u003e · default (tokyo night)\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"100%\"\u003e\n        \u003cimg src=\"docs/assets/powerline.png\" alt=\"Powerline horizontal status bar\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cstrong\u003eHorizontal\u003c/strong\u003e · powerline (nord)\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"50%\"\u003e\n        \u003cimg src=\"docs/assets/vertical.png\" alt=\"Vertical left sidebar layout\" width=\"460\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cstrong\u003eVertical\u003c/strong\u003e · left sidebar (tokyo night)\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"50%\"\u003e\n        \u003cimg src=\"docs/assets/vertical-right.png\" alt=\"Vertical right sidebar layout\" width=\"460\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cstrong\u003eVertical-right\u003c/strong\u003e · right sidebar (tokyo night)\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n## Installation\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003e [!WARNING]\n\u003e `zellij-status` currently supports Linux and MacOS workflows. Native Windows\n\u003e support in Zellij 0.44 has not been tested.\n\n\u003c!-- prettier-ignore-end --\u003e\n\n### From releases\n\nDownload `zellij-status.wasm` from\n[GitHub releases](https://github.com/scottames/zellij-status/releases) and place\nit in `~/.config/zellij/plugins/`:\n\n```bash\nmkdir -p ~/.config/zellij/plugins\ncurl -fsSL \\\n  \"https://github.com/scottames/zellij-status/releases/latest/download/zellij-status.wasm\" \\\n  -o ~/.config/zellij/plugins/zellij-status.wasm\n```\n\nThen reference it in your layout as:\n\n```plaintext\nfile:~/.config/zellij/plugins/zellij-status.wasm\n```\n\n### From source\n\n```bash\ncargo build --release --target wasm32-wasip1\n# binary: target/wasm32-wasip1/release/zellij-status.wasm\nmkdir -p ~/.config/zellij/plugins\ncp target/wasm32-wasip1/release/zellij-status.wasm ~/.config/zellij/plugins/\n```\n\n## Quick start\n\nAdd the following plugin block inside `default_tab_template` in your Zellij\nlayout file.\n\n- See [`examples`](examples/) for several complete working layouts\n\n```kdl\nplugin location=\"file:~/.config/zellij/plugins/zellij-status.wasm\" {\n    layout_mode \"horizontal\"\n\n    color_bg     \"#1e1e2e\"\n    color_fg     \"#cdd6f4\"\n    color_accent \"#a6e3a1\"\n\n    // format_\u003crow\u003e_\u003czone\u003e: numbered rows inside left/center/right zones\n    format_1_left  \"#[fg=$accent,bold]{mode} {tabs}\"\n    // aggregate notification count across all tabs\n    format_2_right \"{notifications}\"\n    format_3_right \"#[fg=$fg] {session} \"\n\n    // {notification} must be present here for per-tab notification icons to render\n    tab_normal \"#[fg=$fg] {index}:{name} {notification}\"\n    tab_active \"#[fg=$bg,bg=$accent,bold] {index}:{name} {notification} #[bg=default]\"\n\n    // optionally show notification indicators on tabs\n    notification_enabled               \"true\"\n    notification_indicator_waiting     \"⏳\" // emoji work out of the box; Nerd Font glyphs work too\n    notification_indicator_in_progress \"🔄\"\n    notification_indicator_completed   \"✅\"\n    // customize per-tab notification icon styling by state\n    // fallback icon format when a state-specific format is not set\n    notification_format_tab            \"{icon}\"\n    notification_format_waiting        \"#[fg=yellow,bold]{icon}\"\n    notification_format_in_progress    \"{icon}\" // (aka no format)\n    notification_format_completed      \"#[fg=$accent,bold]{icon}\"\n    // optionally restyle the whole tab when a notification is present\n    // leave these unset to keep whole-tab overlays disabled\n    notification_tab_style_waiting     \"#[bg=yellow,fg=$bg,bold]\"\n    notification_tab_style_in_progress \"#[bg=yellow,fg=$bg]\"\n    notification_tab_style_completed   \"#[bg=$accent,fg=$bg]\"\n    // pane highlighting follows notifications by default; set this to false to opt out\n    notification_pane_highlight_enabled \"true\"\n    // customize the format for the notification count\n    notification_format                \"#[fg=$accent,bold] {count} \"\n    // hide the aggregate counter when there are no notifications\n    notification_show_if_empty         \"false\"\n}\n```\n\nMental model for the snippet above:\n\n- `format_*` keys place widgets into the bar\n- `tab_*` keys control how each tab looks\n- `notification_format_*` keys style the per-tab icon only\n- `notification_tab_style_*` keys optionally restyle the whole tab\n- `{notifications}` shows the aggregate count; `{notification}` shows the\n  per-tab state\n\n\u003c!-- prettier-ignore-start --\u003e\n\n\u003e [!NOTE]\n\u003e Need more than the quick start?\n\u003e\n\u003e - [`docs/advanced-features.md`](./docs/advanced-features.md) deeper\n\u003e   examples and behavior notes\n\u003e - [`docs/config-reference.kdl`](./docs/config-reference.kdl)\n\u003e   generated key-by-key config reference\n\n\u003c!-- prettier-ignore-end --\u003e\n\nPer-tab `{notification}` formatting uses `notification_format_*` keys and\nsupports `{icon}` as a placeholder.\n\nWhole-tab notification overlays use `notification_tab_style*` keys. They are\nopt-in: if you leave those keys out, tabs keep their existing styling and only\nthe `{notification}` fragment changes. When configured, overlays apply only to\ninactive tabs by default so the active-tab style remains the primary focus\nsignal; set `notification_tab_style_apply_to_active` to `\"true\"` if you want\nactive tabs to restyle as well.\n\nNotified panes are also highlighted by default when notifications are enabled,\nincluding panes in other tabs once their state hydrates into the current\nsession. Set `notification_pane_highlight_enabled` to `\"false\"` if you want to\nkeep the tab indicators and aggregate counter without pane highlighting.\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003e [!TIP]\n\u003e Want to add more visual flair? Try some [Nerd Fonts](https://www.nerdfonts.com/)\n\u003e (for tabs, status segments, notifications, etc).\n\u003c!-- prettier-ignore-end --\u003e\n\nOn first run, Zellij prompts for plugin permissions:\n\n- `ReadApplicationState`\n- `ChangeApplicationState`\n- `ReadCliPipes`\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003e [!IMPORTANT]\n\u003e Layout specific gotchas:\n\u003e\n\u003e - For _horizontal_ layouts, omit `new_tab_template` — Zellij falls back to\n\u003e `default_tab_template` automatically.\n\u003e - For _vertical_ layouts, define `new_tab_template` with `pane command=\"bash\"`\n\u003e as the content pane (see the vertical examples).\n\u003c!-- prettier-ignore-end --\u003e\n\n- `RunCommands`\n\nIf you run the bundled examples against `target/wasm32-wasip1/debug/zellij-status.wasm`, the\npermission entry must match the exact plugin URL used in the layout. For the\nbundled examples that means:\n\n```kdl\n\"file:target/wasm32-wasip1/debug/zellij-status.wasm\" {\n    ReadApplicationState\n    ChangeApplicationState\n    ReadCliPipes\n    RunCommands\n}\n```\n\nA missing or mismatched permission entry can make the status pane appear blank\nuntil access is granted.\n\n## Examples\n\nEach profile under `examples/` is self-contained (`config.kdl` + `layout.kdl`):\n\n| Profile           | Layout     | Description                                                         |\n| ----------------- | ---------- | ------------------------------------------------------------------- |\n| `minimal/`        | horizontal | Bare-minimum starter: mode, tabs, session, notifications            |\n| `default/`        | horizontal | Full feature showcase with split sections, command and pipe widgets |\n| `powerline/`      | horizontal | Powerline tab styling with caps and fill behavior                   |\n| `vertical/`       | vertical   | Left sidebar with top/middle/bottom zones and overflow indicators   |\n| `vertical-right/` | vertical   | Right sidebar mirror of `vertical/` with reversed cap direction     |\n\nRun an example from a local clone:\n\n```bash\ngit clone https://github.com/scottames/zellij-status.git\ncd zellij-status\ncargo build\nEXAMPLE=\"default\"\nzellij \\\n  -s \"zellij-status-${EXAMPLE}\" \\\n  --config-dir \"./examples/${EXAMPLE}\" \\\n  --config \"./examples/${EXAMPLE}/config.kdl\" \\\n  -n \"./examples/${EXAMPLE}/layout.kdl\"\n```\n\nWith [mise](https://mise.jdx.dev/) (build + run):\n\n```bash\nmise run example \u003cprofile\u003e\n```\n\nFor an interactive walkthrough, see `examples/GUIDE.txt`. (also launched in each\nof the examples)\n\nFor advanced customization details and the full generated config reference, see\nthe links in the quick start section above.\n\n## Acknowledgments\n\nThis Frankenstein plugin is a soft-fork of the three excellent Zellij plugins:\n\n- [zjstatus](https://github.com/dj95/zjstatus) by Daniel Jankowski - format\n  engine, widget system, horizontal bar rendering\n- [zellij-vertical-tabs](https://github.com/cfal/zellij-vertical-tabs) by Alex\n  Lau - vertical tab layout and mouse navigation\n- [zellij-attention](https://github.com/KiryuuLight/zellij-attention) by\n  KiryuuLight - pipe-based per-pane notification tracking\n\nMany thanks to them for their hard work. Please check them out; give them much\n❤️ and 🌟.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for build instructions, testing, and how\nto submit changes.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottames%2Fzellij-status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottames%2Fzellij-status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottames%2Fzellij-status/lists"}