By notiriel
Claude Code integration for the Kestrel GNOME Shell extension — session probing, status tracking, permission overlay, notifications, and workspace TODOs
Use this agent when you need to manually test Kestrel extension behavior through DBus eval commands. This agent executes concrete test cases against the running GNOME Shell extension by sending commands via DBus, observing results, and reporting pass/fail status.\n\nExamples:\n\n<example>\nContext: The user has just implemented a new navigation feature and wants to verify it works in the live environment.\nuser: "I just added focusRight support. Can you test that focusing right from the leftmost window moves focus to the next window?"\nassistant: "Let me use the Task tool to launch the dbus-manual-tester agent to run this test case against the live extension."\n<commentary>\nSince the user wants to verify live behavior of the extension, use the dbus-manual-tester agent to execute the test via DBus and report results.\n</commentary>\n</example>\n\n<example>\nContext: The user wants to verify that window creation properly updates the domain state.\nuser: "Test that after opening a new window, the world model has the correct number of windows."\nassistant: "I'll use the Task tool to launch the dbus-manual-tester agent to check the world model state via DBus after window creation."\n<commentary>\nSince the user wants to verify domain state through the running extension, use the dbus-manual-tester agent to inspect state via DBus eval.\n</commentary>\n</example>\n\n<example>\nContext: A bug was reported and the user wants to reproduce it.\nuser: "Can you check if workspace switching via Super+Down actually changes the active workspace in the domain?"\nassistant: "Let me use the Task tool to launch the dbus-manual-tester agent to test workspace switching behavior through DBus."\n<commentary>\nSince the user wants to verify a specific behavior in the running extension, use the dbus-manual-tester agent to execute commands and inspect state.\n</commentary>\n</example>
Use this agent when the user asks questions about PaperWM's behavior, architecture, implementation details, configuration options, or source code. This includes questions about how PaperWM handles window tiling, scrolling, workspaces, keybindings, animations, GNOME Shell integration, or any other PaperWM feature. Also use this agent when comparing Kestrel behavior to PaperWM's approach, or when trying to understand how PaperWM solved a particular problem.\n\nExamples:\n\n- user: "How does PaperWM handle window focus when scrolling?"\n assistant: "Let me use the paperwm-expert agent to look into PaperWM's focus handling during scrolling."\n <launches paperwm-expert agent>\n\n- user: "What signals does PaperWM listen to for window creation?"\n assistant: "I'll use the paperwm-expert agent to find the exact signals PaperWM uses for detecting new windows."\n <launches paperwm-expert agent>\n\n- user: "How does PaperWM implement its overview mode?"\n assistant: "Let me launch the paperwm-expert agent to trace through PaperWM's overview implementation."\n <launches paperwm-expert agent>\n\n- user: "We need to implement workspace switching — how does PaperWM do it?"\n assistant: "I'll consult the paperwm-expert agent to understand PaperWM's workspace switching approach so we can inform our design."\n <launches paperwm-expert agent>
Matches all tools
Hooks run on every tool call, not just specific ones
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Context engineering for humans in an agentic multitasking world.
A GNOME Shell extension that gives each project its own workspace — agent, browser, files — in a scrollable strip you supervise at a glance.
Project Site · Install · Keybindings · Claude Code · Development
Agentic tasks keep getting longer. You're no longer writing code — you're supervising multiple AI agents working across multiple projects in parallel. The idle time between interactions grows, so you context-switch constantly. But your OS was designed for a world where you do one thing at a time. Alt-Tab through five terminals? You lose track. Scatter them across virtual desktops? You miss a permission request. Everything stalls silently.
Kestrel gives each project its own workspace — agent terminal, browser, reference files — arranged in a horizontal strip you scroll through. Status badges show which agents are working, waiting, or done. Permission requests surface inline. Workspaces stack vertically for context separation. You see everything, switch effortlessly, and miss nothing.
← scroll →
┌────────┬────────┬────────┬────────┐
W0 │ agent │ agent │ agent │ agent │
├────────┼────────┼────────┼────────┤
W1 │ docs │ browser│ │ │
├────────┼────────┼────────┼────────┤
W2 │ slack │ notes │ term │ │
└────────┴────────┴────────┴────────┘
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
└── your view ───┘
git clone https://github.com/notiriel/kestrel.git
cd kestrel
npm install
make install # Build + deploy to GNOME extensions dir
make enable # Enable extension + Claude Code plugin + disable conflicting extensions
Then restart your session (log out and back in on Wayland, or Alt+F2 → r → Enter on X11).
Check installation status:
make status
make install compiles TypeScript, copies the extension to ~/.local/share/gnome-shell/extensions/, compiles GSettings schemas, and symlinks the Claude Code plugin and Ulauncher extension.
make enable enables the GNOME extension, disables conflicting extensions (Ubuntu tiling-assistant, DING, Ubuntu Dock), and enables the Claude Code plugin in ~/.claude/settings.json.
All keybindings are configurable via GSettings.
| Keybinding | Action |
|---|---|
Super+Right | Focus next window |
Super+Left | Focus previous window |
Super+Down | Switch to workspace below |
Super+Up | Switch to workspace above |
Super+F | Toggle window half/full width |
Super+Shift+Right | Move window right |
Super+Shift+Left | Move window left |
Super+Shift+Down | Move window to workspace below |
Super+Shift+Up | Move window to workspace above |
Super+- | Toggle overview |
Super+N | Open new window of focused app |
Super+. | Toggle notification focus mode |
Kestrel takes over the Super key and several default GNOME keybindings. make disable restores all original bindings.
Kestrel includes a Claude Code plugin that connects your AI sessions to the desktop via DBus:
The integration activates automatically when Claude Code is installed and the plugin is enabled.
npx claudepluginhub notiriel/kestrelLLM-directed refactoring engine — orchestrate large-scale Java/Kotlin architectural refactorings using IntelliJ's refactoring engine via CLI + YAML config.
Monitor and navigate Claude Code sessions across workspaces
Task lifecycle management: unified execution (run, sync, handover modes), task creation, and PR checklist registration
Deterministic Claude Code → wmux notifications via PostToolUse / Stop / SubagentStop / SessionStart hooks. Replaces wmux's regex-based agent detector with 100%-accurate hook signals when this plugin is installed.
Agent dashboard TUI — tracks AI agent state via hooks for the fleet CLI
Multi-agent tmux dashboard with skills, hooks, and workflow automation
Display Claude agent status in tmux window names via workmux