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 agentmods add skills/sammcj/agentic-coding/markeditnpx skills add sammcj/agentic-coding --skill markeditgit clone --depth 1 https://github.com/sammcj/agentic-codingWrote 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/sammcj/agentic-coding/markedit)<a href="https://agentmods.dev/skills/sammcj/agentic-coding/markedit"><img src="https://agentmods.dev/badge/skills/sammcj/agentic-coding/markedit.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00016 | $0.01361 |
| Opus 5 | $0.00008 | $0.00681 |
| Sonnet 5 | $0.00003 | $0.00272 |
| Haiku 4.5 | $0.00002 | $0.00136 |
Grade A, and why
markedit-tools 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 yesterday.
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 — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Purpose
Help users configure and extend MarkEdit, a free and open-source markdown editor for macOS.
Key Capabilities
- Upgrade the MarkEdit app
- Install, upgrade, and manage MarkEdit extensions
- Configure MarkEdit advanced settings
- Answer questions related to MarkEdit
Core Concepts
File Locations
| Path | Description |
|---|---|
~/Library/Containers/app.cyan.markedit/Data/Documents/scripts/ |
Extensions directory |
~/Library/Containers/app.cyan.markedit/Data/Documents/settings.json |
Advanced settings |
~/Library/Containers/app.cyan.markedit/Data/Documents/editor.css |
Custom stylesheets |
~/Library/Containers/app.cyan.markedit/Data/Documents/editor.js |
Custom JavaScript |
Extension URLs
When a user provides an extension name, download from this URL pattern:
https://github.com/MarkEdit-app/extension-name/blob/main/dist/extension-name-kebab-cased.js?raw=true
Always normalise the extension name to kebab-case.
For example, MarkEdit Preview is available at:
https://github.com/MarkEdit-app/MarkEdit-preview/blob/main/dist/markedit-preview.js?raw=true
When a user requests a "lite" build, it is located in the lite subfolder under dist:
https://github.com/MarkEdit-app/MarkEdit-preview/blob/main/dist/lite/markedit-preview.js?raw=true
The filename is identical to the standard build; do not add a -lite suffix.
If the dist file is not found (non-200 response), fall back to the GitHub latest release asset:
- Fetch the latest release tag from the GitHub API:
https://api.github.com/repos/MarkEdit-app/extension-name/releases/latest - Read the
tag_namefield from the response. - Download the asset using:
https://github.com/MarkEdit-app/extension-name/releases/download/{tag_name}/extension-name-kebab-cased.js
For example, if dist/markedit-preview.js is not available in the repository and the latest release tag is v1.0.0:
https://github.com/MarkEdit-app/MarkEdit-preview/releases/download/v1.0.0/markedit-preview.js
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.
- yesterday First seen · 158 lines · 16 tokens per session scan A d9a086b71414
markedit-tools is a skill published in the GitHub repository sammcj/agentic-coding (159 stars, last pushed yesterday), licensed Apache-2.0. It adds 16 tokens to every session and 1,361 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-09-03.
Other skills, from other repositories
pb-new-agent-session
Spawn one worker agent on the agentproto daemon, drive it with a brief and follow-ups to a verified result, then tear it down cleanly. Trigger when delegating a single task - 'spawn an agent', 'delegate this to a worker', 'run an agent to completion', 'drive an agent session'.
pb-supervise-parallel-mission
Run N parallel worker agents on disjoint file/topic ownership and fan their results into one verified deliverable. Trigger when supervising - 'I am the supervisor', 'spawn parallel workers', 'fan-in several agents', 'decompose this mission and delegate'.
ap-cron
Schedule recurring or one-shot jobs on the agentproto daemon — croncreate with command, agent, or prompt-session actions, cronlist to inspect, cronrun to test-fire, crondelete to remove. Trigger when asked for cron jobs, scheduled agent runs, nightly check-ins, one-shot timers, or durable session re-pings.
ap-run-command
Run a short, allowlisted shell command on the host synchronously through the agentproto daemon and get stdout/stderr/exit code back as a trackable command session. Trigger phrases include "run this command", "execute pnpm test", "check the command allowlist", "tail the command log", "list recent commands run".
ap-terminal
Open a real PTY terminal session through agentproto to drive interactive TUIs (vim, htop, an interactive CLI wizard, a nested claude TUI) with live keystrokes and byte-buffered output. Trigger phrases include "open a terminal", "start a PTY session", "type into the interactive prompt", "attach a terminal panel", "send…
ap-wait-durable
Get notified when a spawned agentproto session finishes WITHOUT blocking your own turn — background a CLI wait with a completion notification, or arm a cron re-ping as a durable fallback that survives daemon restarts. Triggers — "notify me when it's done", "wait in the background", "don't block on this", "durable…