Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rudyalways-context-drop
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
context-drop- Description
- None
- License
- MIT
- Instructions
- 41 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- missing YAML frontmatter
- name: missing
- description: missing
Files (6)
- .gitignore
- Package.swift
- SKILL.md
- main.swift · Sources/ax-read/
- build.sh
- manifest.json
SKILL.md (first lines)
# Context-Drop AX-Read
Tiny Swift CLI that reads the focused app's text selection via the macOS Accessibility API. Sutando.app's "drop context" action (hotkey configurable via `state/hotkeys.json`) shells out to this binary to capture what you have highlighted.
## What it does
Runs once per invocation and emits a single JSON line on stdout:
```json
{"app":"Discord","window_title":"@sutando — Discord","url":"","selected":"the highlighted text","path":"ax"}
```
`path` values:
- `"ax"` — `AXSelectedText` returned non-empty (native NSTextView path)
- `"clipboard"` — AX returned empty, Cmd+C fallback wrote new clipboard content
- `"none"` — both paths returned empty (or AX was denied)
The Cmd+C fallback uses `NSPasteboard.changeCount` to distinguish "Cmd+C actually wrote something" from "clipboard already had content" — otherwise the previous clipboard contents would be silently reported as the new selection. The prior pasteboard string is restored after the probe so a failed-copy attempt doesn't corrupt the clipboard.
## Build
```bash
bash skills/context-drop/build.sh
```
Produces `skills/context-drop/ax-read`. `src/startup.sh` runs this automatically when the binary is missing or older than the source.
## Why a separate binary instead of inlining in Sutando.app
LSUIElement=YES menu-bar agents (which Sutando.app is) have a TCC attribution chain that can misroute AX queries to the parent bundle even after a re-grant. A separately-signed CLI launched as a child gets its own clean trust binding, and the resulting AX queries succeed consistently. The binary is also reusable by any other tool that needs a one-shot selection read — voice agents, other hotkey handlers, automation scripts.
## Permissions
The first time `ax-read` runs it'll trigger the macOS Accessibility prompt for **Sutando.app** (its parent, who macOS attributes the AX queries to). Approve the prompt; the binding persists until the next codesign identity change. See PR #902 for the full TCC story.
## Relationship to the private `personal-deictic` skill
This skill emits the **shared text-selection subset** of `personal-deictic`'s richer output. The private package additionally captures a screenshot of the focused window and the cursor position for deictic phrases ("this", "here") — those fields stay private. Output schemas overlap on the five fields Sutando.app's `invokeAxRead` consumes (`app`, `window_title`, `url`, `selected`, `path`); `personal-deictic` adds `screenshot_path` and `cursor` for the voice agent's `read_selection` tool.
`Sutando.app::resolveAxReadPath()` tries the private path first (when available) and falls back to this public binary, so users with the private skill keep their richer deictic captures while public users get the text-only path. If anything other than Sutando.app's `dropContext` ever spawns this public binary, it should not assume `screenshot_path`/`cursor` will be present — the contract is the five-field subset only.From rudyalways/PhonePcLiveAgentsV2, MIT.
More from rudyalways/PhonePcLiveAgentsV2
- 0.563score
claude-router
rudyalways
Choose between the local Codex CLI and Gemini CLI from Claude Code.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
claude-gemini
rudyalways
Use the local Gemini CLI from Claude Code with the user's existing Gemini authentication or API configuration.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
image-generation
rudyalways
Generate and edit images using Gemini Flash Image, and generate videos using Veo.
SkillBFreshness: B★ 2Claude Code +9 - 0.303score
doc-ingest
rudyalways
No description from the publisher yet.
SkillBFreshness: B★ 2Claude Code +9 - 0.300score
agent-room-ops
rudyalways
No description from the publisher yet.
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 5, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from rudyalways
- 0.563score
claude-router
rudyalways
Choose between the local Codex CLI and Gemini CLI from Claude Code.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
claude-gemini
rudyalways
Use the local Gemini CLI from Claude Code with the user's existing Gemini authentication or API configuration.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
image-generation
rudyalways
Generate and edit images using Gemini Flash Image, and generate videos using Veo.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
context-drop skill. Agent Mart. https://agentmart.dev/skills/rudyalways-context-drop (last updated 2026-10-24)