Ouroboros is a general-purpose AI agent that maintains its identity, memory, and task history across restarts while working on external projects and coordinating specialist agents. It runs as a desktop application or headless command-line tool, using configured remote APIs or a local model for inference. The catalogue skills support working with or modifying Ouroboros.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add razzant/ouroboros --skill unix_computer_usegit clone --depth 1 https://github.com/razzant/ouroborosWrote 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/razzant/ouroboros/unix_computer_use)<a href="https://agentmods.dev/skills/razzant/ouroboros/unix_computer_use"><img src="https://agentmods.dev/badge/skills/razzant/ouroboros/unix_computer_use.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.00033 | $0.01710 |
| Opus 5 | $0.00016 | $0.00855 |
| Sonnet 5 | $0.00007 | $0.00342 |
| Haiku 4.5 | $0.00003 | $0.00171 |
Grade A, and why
unix_computer_use 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 8d 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 — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Unix Computer Use
This bundled extension exposes a reviewable computer-use substrate for local macOS/Linux desktops and explicitly configured remote targets. All actions are for supervised, low-risk workflows under human or benchmark observation. Windows support is deferred to a separate backend/skill.
Tools:
capabilitiesreports the platform, display-session type, and detected screenshot/input backends plus the active connection/backend.list_connections,add_connection,test_connection,activate_connection, anduse_localmanage the local/remote connection registry in skill state.screenshotcaptures the desktop, downscales the image to fit WXGA (1280x800, configurable) and persists the exact image-to-input coordinate transform. Pass coordinates read off the returned image directly to the input tools — they are remapped automatically. The result carries the typedauto_attach_imagefield, so the host attaches the image to the conversation in the same round (v6.81.1) — noview_imagecall is needed for a fresh capture; the returnedpathstaysview_image-readable for re-viewing later.click(left/right/middle, double/triple), the thin aliasesdouble_click/triple_click(models call these names unprompted),move,left_click_drag,mouse_down/mouse_up,cursor_position,type_text,key,hold_key,scroll, andwaitexecute input through platform tools when available. Pointer coordinates pass through one normalizer that accepts the malformations models actually emit (the pair packed intoxwithyabsent or duplicated) and fails loudly on anything ambiguous.window_listlists visible windows/processes where the platform exposes a lightweight backend.ax_treereturns a set-of-marks accessibility snapshot of the frontmost window on macOS: numbered interactive elements (role, title, center coordinates in input space — click them withraw=true). It degrades honestly to a process/window list when the AX walk fails or on Linux.remote_execruns a shell command on the active remote backend only; it refuses on local backend. Use ordinary Ouroboros shell/file tools for local work.
Coordinate contract:
- Input tools accept coordinates in the LAST screenshot's image space and
remap them through the stored transform;
raw=truebypasses remapping. - macOS input consumes LOGICAL points while screenshots are physical pixels;
the stored transform already folds the Retina scale in. On multi-display
Macs the scale is approximate (
approxflag) — preferax_treemarks.
Backend matrix (honest limitations):
- macOS:
screencapture+cliclick+osascript;sipsfor downscaling.scrollis unsupported (cliclick has no scroll-wheel command — page viakeywithpage-down/page-up);middleclick and non-leftmouse_down/mouse_upare unsupported via cliclick.hold_keyholds PURE-MODIFIER combos only (cmd,cmd+shift, ...): cliclickkd:/ku:accept only modifiers andkp:cannot hold — non-modifier holds report an honest error. Inkeycombos the base key is tapped while modifiers are held (cmd+s= hold cmd, tap s). TCC permission state (Screen Recording / Accessibility) is NOT verified: tools exit 0 even when denied (wallpaper-only capture / dropped input) — ensure grants. - Linux X11:
xdotool(input),gnome-screenshot/scrot(capture),wmctrl(windows), ImageMagick (downscaling). Function keys and case-sensitive keysyms are supported (f5→F5,XF86AudioPlayas-is). - Linux Wayland:
ydotool(pointer + typing; requires a runningydotoold) orwtype(typing only),grimorgnome-screenshot(capture).xdotooldoes NOT work on Wayland.keyandhold_keyare unsupported on Wayland (ydotool keytakes raw keycodes only — combos would silently no-op, which this skill refuses to fake); usetype_textfor text. Pointer press/release uses ydotool button masks (0x40/0x80). - Remote OSWorld HTTP:
screenshotusesGET <target>/screenshot; input andremote_execusePOST <target>/execute, matching OSWorld's in-VMpyautoguichannel. The runner writes anosworld_httpconnection before each task. Honesty guarantees on this backend:scrollclicks are 1:1 wheel detents (not multiplied); non-ASCIItype_textis pasted via the in-VM clipboard (pyperclip+ctrl+v, ASCIItypewritefallback) so Unicode is not silently dropped; every action'sokreflects the guest processreturncode/status(HTTP 200 alone is not success);keybackspacepresses BackSpace andfwd-deletepresses forward Delete; screenshots are capped at 20 MB and PNG-validated before use. - Remote SSH macOS:
screenshotuses remotescreencapture+scp; input uses a remote input helper path. The remote Mac must have Screen Recording and Accessibility grants configured by the owner. This skill does not install or store private SSH keys.
What ships with it
1 file 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.
- 8d ago First seen · 120 lines · 33 tokens per session scan A 4863301b4590
unix_computer_use is a skill published in the GitHub repository razzant/ouroboros (1,279 stars, last pushed today), licensed MIT. It adds 33 tokens to every session and 1,710 once invoked, about $0.0002 per session on Opus 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-08-30.
Other skills, from other repositories
control-chrome
Control the user's Chrome browser for tasks that depend on existing Chrome state: tabs, logged-in sessions, or extensions. Prefer purpose-built connectors, APIs, or CLIs when available.
chrome
Use "${id}", the user's OWN signed-in browser, via its extension: open, read, click and type on the sites they allow. For anything needing THEIR session (work SSO, a passkey, a bank, a datacentre-blocked site), or when they say "my browser", "the tab I have open", or name a site they are signed into.
website
Act as the signed-in user on ${site} through a real browser. Use whenever the user asks for something on that site.
omk-computeruse
Route and operate OMK computer-use tasks across native desktop apps, WSL-to-Windows experiments, deterministic browser tools, Stagehand core, and Browserbase MCP without introducing a second orchestrator. Use when an OMK task must inspect or control macOS, Windows, Linux, Chrome, VS Code, Explorer, native GUI…
feature-video
Record a video walkthrough of a feature and add it to the PR description. Use when a PR needs a visual demo for reviewers, when the user asks to demo a feature, create a PR video, record a walkthrough, show what changed visually, or add a video to a pull request.
web-browser
Interact with web pages via browser automation: navigate, click, fill forms, screenshot, and evaluate JavaScript. Uses Chrome/Chromium remote debugging (CDP).