hunch-mcp AGENTS.md

hunch-mcp AGENTS.md is an instructions file for Codex, OpenCode from PrithviSeran/hunch-mcp. It costs 4,478 tokens per session, scanned A, original, Apache-2.0.

Repository instructions for Hunch, a tool that lets an AI agent read and control Mac applications in the background without taking over the user's screen, mouse, or keyboard.

In plain words
What is it for?
Use them when setting up Hunch, changing its tools, working with macOS accessibility features, or running its tests.
Why use it?
They document the design constraints and tests needed to preserve background operation and prevent changes from breaking the tool.

Instructions file for CodexOpenCode

Install

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.

agentmods
npx agentmods add instructions/prithviseran/hunch-mcp/agents-md
Clone the repo
git clone --depth 1 https://github.com/PrithviSeran/hunch-mcp

Made for: Codex, OpenCode.

Wrote 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.

agentmods badge for hunch-mcp AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/prithviseran/hunch-mcp/agents-md.svg)](https://agentmods.dev/instructions/prithviseran/hunch-mcp/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/prithviseran/hunch-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/prithviseran/hunch-mcp/agents-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 4,478 This file is loaded in full into every session.
When invoked 4,478 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.04478 $0.04478
Opus 5 $0.02239 $0.02239
Sonnet 5 $0.00896 $0.00896
Haiku 4.5 $0.00448 $0.00448

Measured 5d ago against content hash 30ae392dcf0d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

hunch-mcp AGENTS.md 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 5d 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.

AGENTS.md · 229 lines

How it starts

The opening of the file, as written. The whole thing — 229 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md — working on Hunch

Context for coding agents modifying this repo. (User-facing "how to use Hunch" lives in README.md; this file is "how the code works and how not to break it.")

Hunch drives a real, logged-in Mac for an LLM focus-free — reading and acting on background apps without stealing the user's screen, cursor, or keyboard. That invariant is the product. Most gotchas below exist to protect it.

Setup & tests

.venv/bin/python -m pytest tests/          # full suite; needs pyobjc (the venv has it)
.venv/bin/python -m pytest tests/test_smoke.py
  • Python ≥ 3.11. Depends on pyobjc (AppKit/ApplicationServices/Quartz) — macOS only.
  • tests/test_smoke.py::test_tool_count asserts exactly 29 MCP tools. Adding/removing a tool means updating that number in the same commit, on purpose.
  • Tests fake all AX/Quartz calls (monkeypatch), so they run headless with no UI and touch no Keychain. Keep new logic unit-testable this way: put the OS call behind a function you can patch, assert on the decision logic.

Architecture — one engine, three faces

The SDK is the product; everything else is an app built on it.

  • sdk.pyHunch, the developer-facing SDK object (instance-owned policy, auth injection ApiKey/OAuthToken/"none", app_id namespacing, notify handler).
  • server.py — the MCP server, an app built ON the SDK (the first one). 29 @mcp.tool() functions each call _run(name, ...)agent._dispatch_core. Its only "personal machine" specialness is constructor args (policy="personal", Hunch branding).
  • agent.py — the agent loop (Agent.run), two backends: api (anthropic, metered) and subscription (claude-agent-sdk, the user's Claude sign-in). backend="auto" picks by ambient credentials. _dispatch_core(mac, name, args) is the single tool-execution engine shared by both the server and the agent loop — expected Hunch exceptions become plain content strings so the model can adapt; only unexpected ones set is_error.
  • local_mac.py — the macOS backend: MacSession (AX perception + action primitives) and LocalComputer (exposes snapshot/act/screenshot to the loop). The biggest, most delicate file.
  • ax_tree_mac.py — low-level AX helpers (get_attr/get_attrs, get_window, get_actions, values_to_bounds, tree walk). One IPC round-trip matters here; huge trees (Mail inbox = one AXRow per email) make naive per-attribute reads take minutes.
  • cdp.py — the web/Electron backend (Chrome DevTools Protocol), background-driven.
  • gate.py / policy.py — consent. Gate.front_gate / confirm_dialog; confirm="off" or HUNCH_NO_INTERNAL_GATE=1 env = auto-approve (host owns permissions, e.g. the desktop app).
  • os_ops.py (files/clipboard/AppleScript), creds.py/auth.py (Keychain), notify.py, errors.py, playbook.py (HUNCH_PLAYBOOK; server.py serves it as FastMCP(instructions=…) so every connected client receives it. Change the model-facing contract here, not the tool docstrings.), cli.py.

Read the full file on GitHub · 229 lines

Changes

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.

  1. 5d ago First seen · 229 lines · 4,478 tokens per session scan A 30ae392dcf0d

Subscribe to this mod's changes

hunch-mcp AGENTS.md is an instructions file published in the GitHub repository PrithviSeran/hunch-mcp (19 stars, last pushed 2d ago), licensed Apache-2.0. It adds 4,478 tokens to every session, about $0.0224 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.