Vellum Assistant is a personal AI assistant that remembers information about users, learns their preferences, and takes actions across connected apps. It is intended for people who want an assistant that can manage conversations, unfinished work, and proactive notifications over time. The catalogue skills, hooks, instruction, and setting configure or extend how the assistant works.
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 vellum-ai/vellum-assistant --skill app-controlgit clone --depth 1 https://github.com/vellum-ai/vellum-assistantWrote 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/vellum-ai/vellum-assistant/app-control)<a href="https://agentmods.dev/skills/vellum-ai/vellum-assistant/app-control"><img src="https://agentmods.dev/badge/skills/vellum-ai/vellum-assistant/app-control/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/vellum-ai/vellum-assistant/app-control"><img src="https://agentmods.dev/badge/skills/vellum-ai/vellum-assistant/app-control.svg" alt="Reviewed on agentmods" width="80" 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.00018 | $0.00801 |
| Opus 5 | $0.00009 | $0.00400 |
| Sonnet 5 | $0.00004 | $0.00160 |
| Haiku 4.5 | $0.00002 | $0.00080 |
Grade A, and why
app-control 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 10d 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 — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
This skill exposes the app_control_* proxy tools for driving a single
named macOS application via raw input — keyboard, mouse, screenshot — that
bypasses the system Accessibility tree. Use it only when explicitly directed
to a specific app where the AX tree is unhelpful (emulators, games, OpenGL
canvases, custom-rendered Electron apps). For general macOS UI navigation
prefer the computer-use skill.
Tools in this skill are proxy tools — execution is forwarded to the connected macOS client, never handled locally by the assistant.
Cadence
Take 2-3 actions per turn, then yield with a short narration so the user can interject. Do not chain long sequences without surfacing what you are doing.
Always observe before acting
Call app_control_observe before your first input action whenever the screen
state matters (e.g. you need to know what is on screen, where a UI element is,
or whether the app is even running). Re-observe after actions that may have
moved the window or changed visibility.
observe waits a short settle delay (default ~200ms) before capturing so the
target app and the WindowServer can flush pending input and composite a fresh
frame. If the captured screenshot looks one input behind the latest state
(common with emulators or other slow-feedback apps), pass a larger
settle_ms. For static UIs where you just want a quick snapshot, pass
settle_ms: 0 to skip the wait.
Input choice
- Prefer
app_control_sequenceover multiple back-to-backapp_control_presscalls when sending an ordered batch of presses (e.g. menu navigation, repeated movement). Sequence runs in a single round-trip — the target app is activated once at the start and the keys are sent serially without any window for keyboard focus to drift to another app between presses. Each step may carry its ownduration_ms(hold) andgap_ms(pause after). - Prefer
app_control_comboover rapid sequentialapp_control_pressfor simultaneous inputs (e.g. cmd+shift+4).comboholds every key at once; sequential presses interleave key-down and key-up events. - Use
app_control_typefor literal text into a focused field.
What ships with it
10 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.
- TOOLS.json 13 KB
- tools/app-control-click.ts 383 B runs code
- tools/app-control-combo.ts 383 B runs code
- tools/app-control-drag.ts 382 B runs code
- tools/app-control-observe.ts 385 B runs code
- tools/app-control-press.ts 383 B runs code
- tools/app-control-sequence.ts 386 B runs code
- tools/app-control-start.ts 383 B runs code
- tools/app-control-stop.ts 382 B runs code
- tools/app-control-type.ts 382 B runs code
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.
- 10d ago First seen · 77 lines · 18 tokens per session scan A 0d6f28c522b3
app-control is a skill published in the GitHub repository vellum-ai/vellum-assistant (1,214 stars, last pushed today), licensed MIT. It adds 18 tokens to every session and 801 once invoked, about $0.0001 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
lictor-security-check
Pre-release security audit for ANY project — AI-built or hand-written, web or mobile. Scans the codebase for the full range of real-world risks that get apps breached: leaked API & AI-provider keys, exposed configs/secrets, broken auth & access control (IDOR), injection (SQL/XSS/command), SSRF, open databases & cloud…
lictor-rotate
Walks the user through rotating a leaked API key — step by step, provider-specific. Knows the exact URL to visit, the exact button to click, and how to verify the rotation worked. Supports Stripe, OpenAI, Anthropic, Google Cloud / AI Studio, GitHub, AWS, Slack, Supabase, Firebase, Postmark, and generic OAuth providers.
lictor-explain
Takes any security finding, error message, or jargon-heavy security advice and explains it in plain English. Use this when someone is confused by what /lictor-security-check found, or when they got a security warning from another tool and don't understand it.
lictor-fix-it
Applies the fixes recommended by /lictor-security-check, with the user's explicit permission for each change. Walks through findings one at a time, shows the proposed change, gets approval, applies, runs tests if available, and moves on. Some fixes (rotating leaked credentials) require the user to act outside Claude …
continual-learning
Nightly refinement of an existing per-repo review-style prompt using this reviewer's own finding outcomes. Read confirmed (resolved-by-commit / thumbs-up) and dismissed (thumbs-down) findings, promote the bug patterns the team actually fixes, demote the false-positive patterns, reconcile against the current prompt…
ha-logs
A read-only troubleshooting skill for querying Hope Agent’s local SQLite databases, which store logs, conversations, and background-job status.