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.
git clone --depth 1 https://github.com/OneDro1d/dark-factoryWrote 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/plugins/onedro1d/dark-factory/plugin)<a href="https://agentmods.dev/plugins/onedro1d/dark-factory/plugin"><img src="https://agentmods.dev/badge/plugins/onedro1d/dark-factory/plugin/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/plugins/onedro1d/dark-factory/plugin"><img src="https://agentmods.dev/badge/plugins/onedro1d/dark-factory/plugin.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade B, and why
agent-notepad scanned grade B with 1 finding 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 23d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
"$comment": "The four USER-LEVEL Notes hooks declared here mirror what install.sh merges into ~/.claude/settings.json (that path uses ${HOME}/.claude/hooks/agent-notepad/...; this plugin path uses ${CLAUDE_PLUGIN_ROOT} p How it starts
The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.
{
"name": "agent-notepad",
"version": "1.0.0",
"description": "Persistent, per-objective working memory for coding agents — one standalone git notepad per objective that survives compaction, spans multiple code repos from a single session, keeps an append-only journal, and mirrors into an episodic memory index. Evolves and supersedes handoff-auto.",
"author": {
"name": "Loom / Dark Factory Process"
},
"keywords": [
"memory",
"working-memory",
"handoff",
"compaction",
"context",
"notepad",
"dark-factory"
],
"$comment": "The four USER-LEVEL Notes hooks declared here mirror what install.sh merges into ~/.claude/settings.json (that path uses ${HOME}/.claude/hooks/agent-notepad/...; this plugin path uses ${CLAUDE_PLUGIN_ROOT} per DESIGN §15). The PreToolUse commit gate is intentionally NOT declared here — it ships in the notepad template's .claude/settings.json so it arms ONLY inside a notepad session (DESIGN §7.6/§15). The digest builder (hooks/digest-build.sh) is a standalone script triggered by a debounced Stop or a scheduled job, not a native hook event, so it is not declared here either.",
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume|clear|compact",
"hooks": [
{
"type": "command",
"command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh\""
}
]
},
{
"matcher": "compact",
"hooks": [
{
"type": "command",
"command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh\" --part notes"
}
]
},
{
"matcher": "startup|resume|clear",
"hooks": [
{
"type": "command",
"command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh\" --part cold-notes"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"What it installs
The manifest is a name and a version. 3 skills travel with it, and installing the plugin installs all of them — 559 tokens a session between them. Each is measured on its own page, and each can be installed alone.
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.
- 23d ago Changed · +21 lines 38284ca82048
- 28d ago Changed · +9 lines 19ee51c57f29
- 1mo ago First seen · 65 lines scan B 61dcfdecd760
agent-notepad is a plugin published in the GitHub repository OneDro1d/dark-factory (4 stars, last pushed yesterday), licensed Apache-2.0. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-01.
Other plugins, from other repositories
open-knowledge-vault
Create and maintain portable Open Knowledge Format vaults with optional Obsidian and Dataview views.
knowledge-and-memory
Research methodology, corpus search, persistent memory, iterative workflows, and project knowledge management.
pai
Personal AI Infrastructure — persistent memory, session continuity, and knowledge graph for Claude Code.
tree-ring-memory
Local-first memory lifecycle, project bootstrap, and receipt-backed harness guidance for Claude Code using Tree Ring Memory v0.15+.
claude-mega-brain
OKF-powered knowledge context for Claude Code — injects your project knowledge base at every session.
vault-template
Personal Knowledge Management system for Obsidian with AI-powered workflows, goal tracking, and productivity coaching.