abb8a2a9d0b274b09084ca07ea25d29d2e08e3a9
- niri 26.04 has no hotplug event: OutputConfigChanged is only an ACK (niri-ipc). Watch WorkspacesChanged, diff sorted output set, apply on change. Proven live: eDP-1 off/on -> 3 output-set transitions, each matched + applied + reloaded. - unit: %h/.local/bin/desk-autoswitch.sh, quoted Environment, drop User/Group (user unit); add desk-autoswitch.sh bin symlink - desk.sh: silence validate/load-config/notify stdout - deploy.sh: deploy repo symlinks (find -type l), so .local/bin links land - docs: event semantics corrected (displays diagram, log)
OMP — Command Center
Configuration repository for Frank's homelab fleet and the agent tooling that runs on it.
The Fleet
| Host | Role | IP |
|---|---|---|
| Workstation | Client box (CachyOS, Niri/Wayland) | — |
| Dankclaw | Server (Podman, reverse proxy, Gitea, NPU) | 192.168.0.143 |
| Dankserver | LLM inference backend | 192.168.0.235 |
The workstation hosts the primary checkout — this repository lives at ~/.omp/ and drives the OMP agent harness.
Structure at a Glance
~/.omp/
├── agent/ # OMP harness runtime
│ ├── config.yml # Live agent configuration
│ ├── models.yml # Model providers (single source of truth)
│ ├── APPEND_SYSTEM.md # System prompt extensions
│ ├── managed-skills/ # Managed skills (SKILL.md bundles)
│ ├── models.db # Model cache
│ └── sessions/ # Persistent session state
├── dotfiles/ # stow-style env-layer packages (home-relative trees)
│ └── deploy via scripts/deploy.sh (check|adopt|sync; quarantine-and-replace)
├── omp-docs/ # Knowledge base (source of truth)
│ ├── index.md # KB index — start here
│ ├── system/ # Fleet hardware, OS, network
│ ├── tools/ # Installed software (llama.cpp, Gitea, Caddy, niri…)
│ ├── core/ # Agent config conventions (settings, models, AGENTS.md)
│ ├── pi/ # Legacy pi-era config reference
│ ├── engineering/ # SDLC, languages, infra, skills ecosystem
│ ├── research/ # Decision-support research (not yet facts)
│ ├── references/ # OKF spec, maintenance procedures
│ ├── caddy/ # Reverse proxy configuration
│ ├── packages/ # Pi packages and extensions
│ ├── inventory/ # Userspace config census
│ ├── reports/ # Investigation reports
│ ├── log.md # Change log
│ └── .okf/ # OKF v0.1 conformance config
├── scripts/ # Utility scripts (kb-lint.sh)
├── plugins/ # npm plugins (pi-peon, etc.)
├── puppeteer/ # Browser automation config
├── .githooks/ # Pre-commit hook
├── .gitignore # Runtime state ignored (databases, logs, cache)
├── AGENTS.md # Agent conventions (niri reload, keybindings)
└── README.md # This file
What Lives Here
Config in, state out. Everything tracked is something an agent reads or writes. Runtime databases (*.db, *.sqlite), logs, caches, and session state are git-ignored — git history captures configuration changes, not agent heartbeat.
Quick Start
| Task | How |
|---|---|
| Read the knowledge base | omp-docs/index.md — every concept linked from here |
| Check agent config | agent/config.yml + agent/models.yml |
| Lint the KB | scripts/kb-lint.sh (OKF v0.1 conformance) |
| View change log | omp-docs/log.md |
| Run a pre-commit | .githooks/pre-commit |
Conventions
- OKF v0.1 — every doc file carries YAML frontmatter with a
type:field.index.mdfiles are directory listings (no frontmatter). - Progressive disclosure —
index.mdis a landing page; drill into subdirectories for detail. - Verified facts — stamped with
verified:when probed against the live fleet. Trust over memory. - Single config source —
~/.omp/agent/models.ymlis the only model registry; OMP is the primary harness and there is no second copy to keep in sync.
Legacy Notes
omp-docs/pi/ and omp-docs/core/ retain general documentation about the pi-coding-agent harness (its config format, packages, skill system) for reference. OMP at ~/.omp/ is the live harness; managed skills live in ~/.omp/agent/managed-skills/.
Languages
Shell
58.2%
HTML
25.6%
Lua
10.3%
CSS
4.3%
Python
1.6%