Computer
Shell-based desktop automation for coding agents (not vision Computer Use)
npx -y skills add vivekkartha/terminal-computer-use --skill computerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 28 days oldThe repository was created 28 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Terminal-first Computer Use: control files, folders, apps, clipboard, notifications, screenshots, and multi-step desktop workflows via shell scripts (bash/Python). Works with Claude Code, Cursor, Codex, Grok, Gemini CLI, and any agent with a terminal. Reuse scripts next to this SKILL.md. Use when the user wants computer use, desktop control, open/quit apps, organize files, Finder automation, or runs /computer.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.3 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Terminal Computer Use
Operate the machine through the terminal, not GUI pixel control / vision APIs.
Prefer reusable scripts in this skill’s scripts/ directory; write new ones when a
pattern will be reused.
Paths (portable)
Never hardcode ~/.grok or any single agent’s install path.
| Variable | Meaning |
|---|---|
SKILL_ROOT | Directory containing this SKILL.md (wherever the skill was installed) |
SCRIPTS | ${SKILL_ROOT}/scripts |
TERMINAL_COMPUTER_USE_HOME | Optional env override for SKILL_ROOT |
Resolve once per session from the loaded skill path, or:
# When running a script, paths resolve via scripts/lib/common.sh automatically.
bash "${SCRIPTS}/doctor.sh"
If you only know the install locations, try in order:
$TERMINAL_COMPUTER_USE_HOME- Path of the skill file the agent loaded
~/.agents/skills/computer~/.grok/skills/computer~/.claude/skills/computer~/.cursor/skills/computer
Operating principles
- Prefer library scripts over one-off shell when a script already covers the task.
- Shell first; Python when parsing / multi-file logic is clearer.
- Persist useful automation under
scripts/with--helpand--dry-runwhen mutating. - Confirm before bulk delete, overwrite, or externally visible sends.
- Absolute paths, quote spaces, never
rm -rfwithout an explicit approved target list. - Idempotent when possible. Report what you did.
- Observe only as needed for the goal. Prefer structured OS/CLI state over screenshots.
Decision tree
User request / goal
├─ Covered by scripts/* ? → run that script with flags
├─ Simple one-liner? → shell directly
├─ Needs OS automation (apps/Finder)? → platform-aware scripts / osascript on macOS
├─ Structured multi-file logic? → Python 3
└─ Will be reused? → add script under scripts/, then run it
How to verify (cheapest sufficient signal):
1. Structured checks — paths, processes, clipboard, dry-run plans, doctor
2. Script/CLI that reads system state directly
3. screenshot.sh ONLY if the goal depends on visual/UI state those cannot provide
(never screenshot "to be safe" before file/app/clipboard work)
Terminal Computer Use wins by using the control plane (files, apps, clipboard, processes). Screenshots are an escape hatch for UI-native goals — not the default observe loop.
Running scripts
SCRIPTS="<skill-root>/scripts"
bash "${SCRIPTS}/<name>.sh" [args]
python3 "${SCRIPTS}/<name>.py" [args]
Every script supports -h / --help. Destructive scripts support --dry-run.
Set TCU_SAFE_MODE=1 to force dry-run on mutators (fs-move, fs-copy, safe-trash,
fs-organize).
Capability map
| Need | Script |
|---|---|
| Health check | scripts/doctor.sh |
| Tool inventory | scripts/which-tools.sh |
| Desktop/Downloads path | scripts/desktop-path.sh |
| Open app / file / URL | scripts/open-target.sh |
| Quit / activate app | scripts/quit-app.sh, scripts/app-activate.sh |
| List / frontmost app | scripts/list-apps.sh, scripts/frontmost-app.sh |
| Reveal in file manager | scripts/reveal-in-finder.sh |
| Safe move / copy | scripts/fs-move.sh, scripts/fs-copy.sh |
| Organize (smart / extension / date) | scripts/fs-organize.py (--by smart default) |
| Organize plan / apply / undo | fs-organize.py --dry-run DIR → --apply → --undo (plan in ~/.tcu/) |
| Smart organize (shim) | scripts/fs-smart-organize.py → --by smart |
| Safe trash | scripts/safe-trash.sh |
| Clipboard | scripts/clipboard.sh |
| Notification | scripts/notify.sh |
| Screenshot | scripts/screenshot.sh |
| Native path picker | scripts/choose-path.sh (macOS) |
| AppleScript | scripts/osascript-run.sh (macOS) |
See references/safety.md, references/macos-cli.md, references/linux-cli.md.
Writing new scripts
- Name:
kebab-case, verb-first (.sh/.py/.rb) - Shebang:
#!/usr/bin/env bashor#!/usr/bin/env python3 - Bash:
set -euo pipefail; sourcescripts/lib/common.sh --help;--dry-runfor mutationschmod +x- Prefer
lib/platform.shhelpers (tcu_open,tcu_notify, …) over OS-specific commands - Update the capability table above when adding a primary entry point
Safety (non-negotiable)
- Do not delete
$HOME,/, or empty Trash unless explicitly asked. - Prefer
safe-trash.shoverrm. - Quit apps gracefully; avoid
kill -9unless hung + requested. - Network/message sends need explicit user intent.
- Bulk file ops: dry-run first unless the user asked to apply immediately.
TCU_SAFE_MODE=1forces dry-run on mutators even if--dry-runwas omitted; blocks organize--apply/--undo.- After a bad organize:
python3 "$SCRIPTS/fs-organize.py" --undo(last plan under~/.tcu/).
Platform support
| macOS | Linux | Windows | |
|---|---|---|---|
| Files (move/copy/organize) | ✅ | ✅ | partial |
| Open / reveal | ✅ | ✅ | soon |
| Clipboard / notify | ✅ | ✅* | soon |
| Apps (list/quit/activate) | ✅ | best-effort | soon |
| Screenshots | ✅ | ✅* | soon |
* Needs common desktop utilities (xdg-open, notify-send, wl-copy/xclip).
Example prompts
/computer open Slack and reveal ~/Downloads
/computer organize my desktop (smart categories, dry-run first)
/computer quit Spotify; notify me when done
/computer move PDFs on Desktop into ~/Documents/PDFs
After complex work
- Leave new scripts in
scripts/with--help. - Name them in the final reply for future reuse.
- Prefer safe defaults over asking micro-questions.
What ships with it: 25 files
58.4 KB alongside SKILL.md, 22 of them executable
references/
- linux-cli.md724 B
- macos-cli.md763 B
- safety.md2.1 KB
scripts/
- app-activate.shruns618 B
- choose-path.shruns1.9 KB
- clipboard.shruns1.4 KB
- desktop-path.shruns697 B
- doctor.shruns4.4 KB
- frontmost-app.shruns515 B
- fs-copy.shruns814 B
- fs-move.shruns897 B
- fs-organize.pyruns19.1 KB
- fs-smart-organize.pyruns567 B
- lib/common.shruns3.5 KB
- lib/fs.shruns3.1 KB
- lib/platform.shruns8.0 KB
- list-apps.shruns882 B
- notify.shruns1003 B
- open-target.shruns1.6 KB
- osascript-run.shruns804 B
- quit-app.shruns1.1 KB
- reveal-in-finder.shruns687 B
- safe-trash.shruns1016 B
- screenshot.shruns1.3 KB
- which-tools.shruns1.2 KB