pi-kde-wakelock

KDE sleep inhibitor extension for pi-coding-agent — prevents suspend while agents run

Packages

Package details

extension

Install pi-kde-wakelock from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-kde-wakelock
Package
pi-kde-wakelock
Version
0.1.0
Published
Jul 11, 2026
Downloads
not available
Author
leejangthegreat
License
MIT
Types
extension
Size
22.2 KB
Dependencies
0 dependencies · 5 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-kde-wakelock

KDE sleep inhibitor extension for pi. Prevents suspend (and optionally screen lock) while agent or subagent sessions are running.

Quick Start

Prerequisites

  • pi coding agent
  • KDE desktop (XDG_CURRENT_DESKTOP=KDE)
  • kde-inhibit from kde-cli-tools (falls back to systemd-inhibit if unavailable)

Install

# Global install (writes to ~/.pi/agent/settings.json)
pi install npm:pi-kde-wakelock

# Project install (writes to .pi/settings.json, shareable with your team)
pi install -l npm:pi-kde-wakelock

The extension loads automatically on pi startup — no extra configuration needed.

Try without installing:

pi -e npm:pi-kde-wakelock

Use

# Default: inhibit suspend while agents run
pi

# Also inhibit screen saver / screen lock
pi --wakelock-screen

# Or set a persistent default via environment variable
export PI_WAKELOCK_INHIBIT_SCREEN=1
pi

Verify

# Inside a pi session
/wakelock

# From another terminal while an agent is running
pgrep -af "kde-inhibit.*sleep infinity"

Update / Remove

pi update npm:pi-kde-wakelock
pi remove npm:pi-kde-wakelock

What's Included

pi-kde-wakelock/
├── extensions/
│   ├── index.ts                 # Extension entry (events, flag, /wakelock)
│   └── wakelock/
│       ├── config.ts            # Constants, flag/env resolution, command builder
│       ├── environment.ts       # Detect kde-inhibit / systemd-inhibit
│       ├── inhibitor.ts         # Long-running inhibit subprocess
│       ├── manager.ts           # Reference-counted acquire/release
│       └── types.ts             # Readonly type definitions
├── docs/
│   └── engineering/
│       └── kde-wakelock.md      # Agentic engineering notes
├── package.json                 # Pi manifest (extensions only)
├── tsconfig.json                # Type checking (dev)
├── biome.json                   # Lint/format (dev)
├── CHANGELOG.md
├── LICENSE
└── README.md

Package Structure

Pi packages can contain any combination of these resources:

Extensions (extensions/)

wakelock — Prevents KDE from suspending while any agent or subagent is running. Uses kde-inhibit --power (falls back to systemd-inhibit) for the duration of each agent run; the lock is released automatically when the agent finishes.

  • /wakelock — show lock status in the current pi session
  • --wakelock-screen — also inhibit screen saver / screen lock (KDE only)
  • PI_WAKELOCK_INHIBIT_SCREEN=1 — persistent default for screen inhibition
pi -e pi-kde-wakelock
pi -e pi-kde-wakelock --wakelock-screen

See docs/engineering/kde-wakelock.md for design details.

Learn More

License

MIT