Borrowing it
Nothing to install: this file belongs to outlmd/outl. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/outlmd/outl/main/.claude/skills/run-desktop/SKILL.mdgit clone --depth 1 https://github.com/outlmd/outlWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/outlmd/outl/run-desktop)<a href="https://agentmods.dev/skills/outlmd/outl/run-desktop"><img src="https://agentmods.dev/badge/skills/outlmd/outl/run-desktop/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/outlmd/outl/run-desktop"><img src="https://agentmods.dev/badge/skills/outlmd/outl/run-desktop.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00074 | $0.02122 |
| Opus 5.5 | $0.00030 | $0.00849 |
| Sonnet 5.5 | $0.00015 | $0.00424 |
| Haiku 4.5 | $0.00007 | $0.00212 |
Grade A, and why
run-desktop scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 183 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Running outl-desktop for real
Tests prove the logic. They do not catch a hover that pushes the page down 18pt, a modal that never takes the keyboard, or a picker whose first screen is four years old. Those need the app.
Never drive the real workspace
The desktop opens [workspace] last from the global config, which on a
daily driver is the user's actual graph. Driving it means synthetic
keystrokes land in real notes — and they do land: a stray a is vim's
append, so abc typed at the wrong moment becomes text in a block.
XDG_CONFIG_HOME is honoured by both outl_config::config_dir and
outl_core's device dir, so one variable isolates config, actor and
device identity together.
LAB=<scratch>/uxlab
cp -Rc ~/outl-p2p "$LAB/ws" # APFS clonefile: 375M in under a second
rm -f "$LAB/ws/.outl/peers.json" "$LAB/ws/.outl/.lock" "$LAB/ws/.outl/.peers.lock"
mkdir -p "$LAB/cfg/outl"
cat > "$LAB/cfg/outl/config.toml" <<TOML
[workspace]
last = "$LAB/ws"
[sync]
transport = "file"
TOML
transport = "file" plus a deleted peers.json is the part that
matters: a clone carries the user's peer list, and an iroh transport
would dial their real devices and sync a new actor's ops into the real
graph. Clone first, cut the network second, launch third.
Deleting the workspace's peers.json is not enough on its own.
migrate_global_peers_if_absent runs on first touch and copies
~/.outl/peers.json back in, so the lab log reads peers migration: copied ... on the first open and the file is there again. The
transport = "file" line is what actually keeps it inert, which makes
it the load-bearing half rather than the belt to the delete's braces.
Check the log for that line and confirm no endpoint was bound before
driving anything.
Then:
cd crates/outl-desktop
env XDG_CONFIG_HOME="$LAB/cfg" bun run tauri dev
The first build is minutes. Afterwards target/debug/outl-desktop can
be launched directly with the same env, which is faster and survives
the shell that started it.
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 183 lines · 74 tokens per session scan A 39faf50772fd
run-desktop is a skill published in the GitHub repository outlmd/outl (222 stars, last pushed yesterday), licensed MIT. It adds 74 tokens to every session and 2,122 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-26.
Other skills, from other repositories
kdd-accessibility-scan
Guia a cualquier agente (no depende de ningun modelo puntual) para producir un scan de accesibilidad (WCAG) de un producto en el formato de contrato de Capa 3 de KDD -- findings.json -- que despues gatea scripts/validateaccessibilityfindings.py. Usala cuando se pida auditar accesibilidad de una app/pagina, correr…
kdd-test-coverage-scan
Guia a cualquier agente (no depende de ningun modelo puntual) para producir un scan de gaps de cobertura de tests (rutas criticas sin cubrir, casos de error sin test, regresiones sin atrapar) en el formato de contrato de Capa 3 de KDD -- findings.json -- que despues gatea scripts/validatetestcoveragefindings.py. Usala…
pm-native-ccdd
Variante NATIVA del PM/orquestador CCDD que usa sub-agentes de la app de Claude (tool Agent con model override) en vez de GLM/Ollama externo. Claude autora contrato + tests congelados (oráculo), delega la IMPLEMENTACIÓN a un sub-agente barato (Haiku 4.5), y verifica por el gate CCDD determinista. Úsala cuando quieras…
pos-verify
Use this immediately after files are created, edited, moved, deleted, or materially rewritten inside PersonalOS. Verifies that new truth was routed to the correct owner, written in the correct file shape, and still follows POS conventions. Do NOT use for whole-vault deep audits; use system-health-check.
delegar-pool-ccdd
Delega la IMPLEMENTACIÓN de UNA función/tarea puntual a un dev efímero vía pool exec (poolside.ai), verificada por el CCDD gate. Úsala cuando el usuario pida implementar/arreglar/extender algo puntual y quiera que lo haga pool — "delega a pool" / "usa el ccdd gate con pool". Para proyectos con VARIAS tareas y devs en…
Gauge Testing
Test automation with Gauge framework using Markdown specifications, step implementations in Java/Python/JavaScript/Ruby/C#, concepts, data-driven testing, and living documentation.