About
Agentik
Agentik is a local-first Noctalia control surface for coding agents. It monitors Oh My Pi and optional Hermes Agent sessions, shows their current lifecycle and work state, and opens safe harness-native chat or terminal workflows without taking ownership away from an active terminal.
![]()
Plugin
| Field | Value |
|---|---|
| ID | notfinaldev/agentik |
| Entries | Bar widget: agents; panel: session-panel; desktop widget: desktop-agents; service: monitor |
Usage
- Enable Agentik in Settings → Plugins.
- Add the Agentik Agents widget to a bar.
- Click the widget to open the session panel.
- Optionally add Agentik Desktop Agents through the desktop-widget editor.
Open or toggle the panel from a terminal or compositor binding:
noctalia msg panel-toggle notfinaldev/agentik:session-panel
The panel can continue a completed OMP session, fork a session that is active elsewhere, or start a new session with an installed supported harness. Open in terminal resumes or forks the selected session in a supported terminal emulator. While another terminal owns an OMP journal, the panel remains read-only.
Requirements
- Noctalia plugin API 24 or newer.
python3onPATH. The monitor and chat bridge are Python programs launched by Noctalia.omponPATH, orOMP_BINset to its executable. OMP supplies the required session journal and chat workflows.- Optional:
hermesonPATH, orHERMES_BINset to its executable, to monitor and launch Hermes Agent sessions. - Optional:
wl-copyonPATHfor the Copy actions shown beside choices, code, and tool output. - Optional:
xdg-openonPATHfor Open project directory. - Optional terminal handoff uses
shplus the first available launcher:xdg-terminal-exec,ghostty,kitty,foot,alacritty,gnome-terminal,kgx, orkonsole.AGENTIK_TERMINALoverrides automatic selection.
Settings
| Setting | Default | Effect |
|---|---|---|
| Show current task | On | Shows the active OMP todo item in session rows |
| Show attention state | On | Shows running, waiting, blocked, completed, failed, or cancelled status |
| Primary label | Project | Selects project, agent session name, or model name |
| Sort order | Running time | Selects running-time or attention-first ordering |
| Needs attention only | Off | Restricts the panel to waiting and blocked sessions |
| Excluded projects | Empty | Comma-separated project names or full paths omitted from monitoring and chat |
| Enable coding session chat | On | Enables session selection, transcript, model, send, cancel, and terminal controls |
| Reduce motion | Off | Uses static orb frames and reveals assistant text immediately |
| Increase contrast | Off | Strengthens session backgrounds and text contrast |
| Show displayed-agent number | On | Shows the current agent ordinal in the bar widget |
| Show intent state | On | Shows the inferred work state in the bar widget |
| Notify on attention needed | Off | Notifies when a known active agent changes to waiting or blocked |
| Notification cooldown | 300 seconds | Limits attention-notification frequency |
| Privacy notifications | Off | Removes project and task names from notification bodies |
Noctalia also supplies the standard placement, position, layer, and open-near-click controls for the panel entry.
Detection and local access
Agentik does not use a remote service and does not send session journals anywhere.
- OMP: reads
~/.omp/agent/sessions/**/*.jsonland~/.omp/agent/terminal-sessions/pts-*, then inspects the current user's/proc/<pid>/fdlinks to distinguish live sessions from completed, failed, or cancelled sessions. It callsomp config get modelRoles --jsonandomp models --jsonto populate local model choices. Chat and terminal actions run the selected localompcommand with its normal configuration. - Hermes Agent: detects a live
hermesprocess under the current user, reads~/.hermes/state.dbin SQLite read-only mode, and reads~/.hermes/provider_models_cache.jsonfor local model choices. Hermes is ignored when it is not installed or running. - Cache: generates the attributed orb animation pack and writes incremental journal metadata below
${XDG_CACHE_HOME:-~/.cache}/agentik/. - Chat state: writes selection, lifecycle, locks, and owner-only run logs below
${XDG_STATE_HOME:-~/.local/state}/agentik/chat. - Project access: monitoring does not read project files. Journal-derived project actions accept only normalized absolute filesystem paths; URL schemes, relative paths, and option-like values are discarded. Open project directory calls
xdg-openwith the path as one argv value. A chat or terminal action intentionally starts the chosen harness in the selected project directory; that harness retains its normal filesystem permissions, tools, provider configuration, and network policy.
Environment overrides used for development and controlled deployments are AGENTIK_STATE_DIR, AGENTIK_SESSIONS_DIR, AGENTIK_JOURNAL_INDEX, AGENTIK_TERMINAL, OMP_BIN, HERMES_BIN, and HERMES_HOME.
Notes
- Agent state combines an exact lifecycle (
running,waiting,blocked,completed,failed, orcancelled) with an inferred work animation (working,searching,verifying,awaiting input,connecting,integrating,creating,pausing, orplanning). The original tool intent remains visible beside the inferred label. - Agentik preserves a single writer for every OMP journal. It never injects input into a session owned by a terminal.
- Transcript polling is revisioned and bounded. Unchanged polls do not resend transcript content.
- On first run, Agentik generates an attributed 30 FPS SVG animation pack in
${XDG_CACHE_HOME:-~/.cache}/agentik/orbs; the shell remains usable with a static fallback while generation completes. The generator isbuild_orbs.py, derived from Jakub Antalik's Thinking Orbs under the MIT License; seeTHIRD_PARTY_LICENSES. - An optional attributed 60 FPS pack can replace it with
python3 build_orbs.py --fps 60; reload Agentik afterward. The generated pack remains free under the same Thinking Orbs MIT notice.
License
Agentik is released under the MIT License. See LICENSE and THIRD_PARTY_LICENSES.
Versions
| Version | Plugin API | Updated |
|---|---|---|
| v0.1.0 latest | 24 | Sep 13, 2026 |
Older versions stay installable on a Noctalia release whose plugin API is below the latest version's.