← Back to Skills Marketplace
atefr

Niri IPC

by AtefR · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
2024
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install niri-ipc
Description
Control the Niri Wayland compositor on Linux via its IPC (`niri msg --json` / $NIRI_SOCKET). Use when you need to query Niri state (outputs/workspaces/windows/focused window) or perform actions (focus/move/close windows, switch workspaces, spawn commands, reload config) from an OpenClaw agent running on a Niri session.
Usage Guidance
This skill appears to genuinely be for controlling a Niri session, but take these precautions before installing: 1) Only install if you run the Niri compositor and trust the skill owner; the skill assumes $NIRI_SOCKET and the `niri msg` CLI but does not declare them — confirm those prerequisites. 2) Review the bundled scripts (scripts/niri.py, niri_ctl.py, niri_socket.py) yourself to verify what they execute; pay attention to the implementation of spawn/spawn-sh to see how they invoke the shell. 3) If you do not want the agent to execute arbitrary commands automatically, set disable-model-invocation:true or require explicit user invocation for this skill. 4) Prefer running the skill in a limited environment or session (not a privileged/root session) and avoid installing it into agents that have broad access to sensitive data or credentials.
Capability Analysis
Type: OpenClaw Skill Name: niri-ipc Version: 1.0.0 The skill provides direct and low-level access to the Niri Wayland compositor's IPC, including the ability to execute arbitrary shell commands via the `spawn-sh` action, as demonstrated in `SKILL.md` and implemented through `scripts/niri.py`. Furthermore, `scripts/niri_socket.py` allows raw interaction with the IPC socket, enabling any Niri IPC command to be sent, which could include destructive actions. While these capabilities are inherent to the Niri IPC and align with the skill's stated purpose, they represent significant high-risk behaviors without clear evidence of intentional malicious use within the skill bundle itself.
Capability Assessment
Purpose & Capability
The name, description, SKILL.md and bundled scripts (scripts/niri.py, scripts/niri_ctl.py, scripts/niri_socket.py) all align with a Niri IPC helper: they wrap `niri msg` and $NIRI_SOCKET operations and provide window/workspace actions. However, the skill declares no required env vars or binaries even though the instructions explicitly assume $NIRI_SOCKET and the `niri msg` CLI are available. The omission of these declared requirements is an inconsistency (should at least list NIRI_SOCKET and niri).
Instruction Scope
The SKILL.md stays on-topic (querying state, focusing/moving/closing windows, spawning programs, streaming events). It documents using helper scripts and direct socket access. A notable point: the documented actions include 'spawn' and 'spawn-sh' — the latter runs commands through the shell, so the skill provides a mechanism to execute arbitrary shell commands on the host. That behavior is coherent with compositor control but is sensitive and worth flagging.
Install Mechanism
There is no install spec (instruction-only skill with bundled scripts). No external downloads or package installs are requested, so nothing is written to disk by an installer beyond the included files. This is lower installation risk.
Credentials
The skill requires access to the Niri socket and the `niri msg` CLI in practice, but requires.env and primary credential fields are empty. The SKILL.md references $NIRI_SOCKET and running inside a Niri session; these should have been declared. Also, since the skill can spawn arbitrary commands (including via shell), any environment or file the spawned commands access becomes relevant — the skill requests broader runtime privileges than are declared.
Persistence & Privilege
The skill is not set always:true (good), but disable-model-invocation is not set, so the model can invoke this skill autonomously. Combined with documented spawn and spawn-sh actions that can run arbitrary processes/commands, this creates a risk surface: an autonomously-invoked skill could execute commands on the host. For a compositor control tool this ability may be reasonable, but it is sensitive and should be intentionally restricted or documented.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install niri-ipc
  3. After installation, invoke the skill by name or use /niri-ipc
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of niri-ipc skill. - Control Niri Wayland compositor on Linux using its IPC interface (`niri msg --json` or `$NIRI_SOCKET`) - Bundled helper script for common actions: querying outputs, workspaces, windows, and focused window - High-level helpers for matching and managing windows by substring (title or app_id) - Direct access to raw IPC via socket, supporting batch requests and event streams - Support for key compositor actions: focus/move/close windows, switch/focus workspaces, reload config, spawn commands - Troubleshooting and reference information included for smooth integration
Metadata
Slug niri-ipc
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Niri IPC?

Control the Niri Wayland compositor on Linux via its IPC (`niri msg --json` / $NIRI_SOCKET). Use when you need to query Niri state (outputs/workspaces/windows/focused window) or perform actions (focus/move/close windows, switch workspaces, spawn commands, reload config) from an OpenClaw agent running on a Niri session. It is an AI Agent Skill for Claude Code / OpenClaw, with 2024 downloads so far.

How do I install Niri IPC?

Run "/install niri-ipc" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Niri IPC free?

Yes, Niri IPC is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Niri IPC support?

Niri IPC is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Niri IPC?

It is built and maintained by AtefR (@atefr); the current version is v1.0.0.

💬 Comments