Horizon App Testing
peters/horizon
Run or inspect declared iOS and Android native app tests through Horizon devicetestrun and app MCP tools.
Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server.
$ npx skills add zhitongblog/solomd --skill solomd -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install zhitongblog/solomd solomd --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .claude/skills/solomd && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .claude/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomdType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add zhitongblog/solomd --skill solomd -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install zhitongblog/solomd solomd --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .agents/skills/solomd && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .agents/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zhitongblog/solomd --skill solomd -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install zhitongblog/solomd solomd --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .cursor/skills/solomd && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .cursor/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/zhitongblog/solomd.git --path marketplace/claude-code-skill/solomd--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add zhitongblog/solomd --skill solomd -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install zhitongblog/solomd solomd --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .gemini/skills/solomd && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .gemini/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install zhitongblog/solomd solomdInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add zhitongblog/solomd --skill solomd -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .github/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .github/skills/solomd && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .github/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zhitongblog/solomd --skill solomd -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install zhitongblog/solomd solomd --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhitongblog/solomd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/marketplace/claude-code-skill/solomd .opencode/skills/solomd && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "solomd" agent skill from https://github.com/zhitongblog/solomd/tree/main/marketplace/claude-code-skill/solomd into .opencode/skills/solomd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solomd", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
solomdRead, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server.
Solomd is an agent skill from zhitongblog/solomd. Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server. 13 tools including AutoGit per-note history, semantic search, and write-with-sandbox via an accept/reject branch. Includes 11 starter agent recipes (weekly review, todo extract, link suggester, …).
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files (for example `install.sh`, `recipes/01-weekly-review.yml` and `recipes/02-todo-extract.yml`).
It sits in Knowledge Management, covering Note-taking, Git workflow and MCP servers. It works with Model Context Protocol, Tauri, Vue.js and Obsidian. The repository describes itself as: A markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK. The licence is MIT.
Read from SKILL.md and the folder at commit 35e8fef. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
solomd:*From allowed-tools in the SKILL.md frontmatter.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
claudegitbashcargoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
solomd.appFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Solomd loads about 2k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 910 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from zhitongblog/solomd at commit 35e8fef, republished under its MIT licence (© zhitongblog). 910 words, ~2,042 tokens.
.claude/skills/solomd/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.Trigger this skill when the user wants to:
autogit_log /
autogit_diff.solomd.app/share/?repo=…&path=… link
that renders the file from a public GitHub repo (no SoloMD account
required for the viewer).If the user just wants generic file I/O on a directory, the built-in filesystem tools are simpler. This skill is specifically for Markdown-as-a-vault workflows.
The skill assumes solomd-mcp is installed and registered as a user-scope
MCP server (~/.claude.json). If /mcp doesn't list solomd, run:
bash ~/.claude/skills/solomd/install.shThis installs the binary (via cargo install solomd-mcp on macOS or
downloading the prebuilt binary from
https://github.com/zhitongblog/solomd/releases/latest on Linux / Windows)
and registers a solomd server pointing at your notes folder via
claude mcp add --scope user (falling back to patching ~/.claude.json
directly when the claude CLI isn't on PATH).
Default mode is read-only. To enable the 3 write tools, re-register with
--allow-write:
claude mcp remove solomd -s user
claude mcp add --scope user solomd -- \
~/.claude/bin/solomd-mcp --workspace ~/your-notes --allow-writeAll exposed via the solomd: prefix.
solomd:list_notes(workspace?, subdir?, limit=100) — list .md files.solomd:read_note(workspace?, path) — full contents.solomd:search(workspace?, query, mode="literal"|"regex", limit=200) —
substring or regex search; returns matches with line numbers.solomd:get_backlinks(workspace?, note_name) — every note that
references [[<name>]].solomd:list_tags(workspace?) — #tag aggregation with counts.solomd:get_outline(workspace?, path) — H1/H2/H3 structure.solomd:autogit_log(workspace?, path, limit=20) — per-note commit
history. Each save in SoloMD is a commit.solomd:autogit_diff(workspace?, path, from_revision, to_revision="HEAD") —
diff between revisions of one note.solomd:sync_status(workspace?) — git remote ahead/behind, dirty files,
conflict state.solomd:share_url(workspace?, path) — generate a public read-only
solomd.app/share/… link (requires the workspace to be pushed to a
public GitHub repo).solomd:read_agent_trace(workspace?, run_id) — replay a past agent
recipe run from its .solomd/agent-runs/<run-id>/trace.jsonl.--allow-write on the server)solomd:write_note(workspace?, path, content) — create or overwrite.
Returns the diff against any prior version.solomd:append_to_note(workspace?, path, content) — append; idempotent
(won't duplicate a block already present at the bottom).solomd:autogit_rollback(workspace?, path, revision) — restore a note
to a past commit.If the server was started with multiple --workspace alias=/path flags,
pass the workspace argument (e.g. workspace: "work" or
workspace: "home") to disambiguate. Without one, the first registered
workspace is the default.
When the user asks "do X across my notes", first call list_notes or
search to confirm the scope. The vault might be 30 notes or 3,000 — your
plan should match the size.
When responding with information from notes, link them back as
[[note-name]] (the wikilink format SoloMD uses). The user can click
straight back to the source. Example:
Your three open architecture decisions are tracked in [[adr-001-storage]], [[adr-003-rate-limits]], and [[adr-007-streaming-api]].
If the user is also running the SoloMD desktop app on the same vault,
every write tool call lands on an agent/<recipe>/<run-id> AutoGit branch
the user must accept in Settings → Recipes → Pending before it touches
main. Tell the user this is happening so they know to check the app:
I've written the summary to
weekly/2026-W22.md— it's pending on an AutoGit branch (agent/claude-code/abc123). Open SoloMD → Settings → Recipes → Pending to accept or reject before it lands on main.
If they're not running the app, the write lands on a branch they can
inspect manually with git branch | grep agent/ and git merge /
git branch -D as needed.
The server enforces a per-run write cap (default 5, hard ceiling 50). If you hit it, the call returns an error and no further writes succeed in that session. Plan multi-write actions in a single dispatch rather than fanning out one-at-a-time.
This skill ships 11 reference YAML recipes at
recipes/. They're the same files as the SoloMD Skill Pack
zip — copy any of them into <workspace>/.solomd/agents/ to enable inside
SoloMD (the app's recipe runner watches that directory).
For use from Claude Code directly, treat the YAML as documentation: adapt
the prompt: block into the user's request and call the appropriate MCP
tools yourself. Example — 01-weekly-review.yml becomes:
Use
list_notesto find everydaily/*.mdfrom the past 7 days, read each, and writeweekly/{ISO-week}.mdwith Themes / Decisions / Open threads sections, citing each daily as[[YYYY-MM-DD]].
| File | Trigger (in-app) | Pattern |
|---|---|---|
01-weekly-review.yml | schedule (Sun 18:00) | Summarise daily/ → weekly/YYYY-WW.md |
02-todo-extract.yml | on-save | Pull - [ ] lines into todos.md |
03-translate-zh-to-en.yml | on-tag-add #translate | Mirror translation alongside source |
04-cjk-proofread.yml | on-save | Local-Ollama punctuation + grammar |
05-citation-cleanup.yml | on-tag-add #cite | Bibliography normalisation |
06-meeting-notes-summary.yml | on-save | Generate decisions / actions sections |
07-link-suggester.yml | on-save | Propose wikilinks via semantic search |
08-daily-summary.yml | schedule (daily 22:00) | Roll up today's edits |
09-orphan-notes.yml | schedule (weekly) | Find notes with no incoming wikilinks |
10-on-commit-changelog.yml | on-commit | Maintain CHANGELOG.md |
11-tag-classifier.yml | on-save | Suggest tags from content |
Bash / Read / Edit tools.Edit is more efficient than going through read_note / write_note.SoloMD is a free, MIT-licensed Markdown editor. The MCP server you just installed is bundled with the desktop app — get the app for the visual Agent panel, the accept/reject UI, and AutoGit history navigation.
© zhitongblog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 12 other files in marketplace/claude-code-skill/solomd of zhitongblog/solomd.
Open the folder on GitHubat commit 35e8fef
Solomd next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Solomd this skillzhitongblog/solomd | 1.2k | — | ~2k | Automated safety check: Pass | MIT | |
| Horizon App Testingpeters/horizon | 716 | — | ~277 | Automated safety check: Pass | MIT | |
| Joplinalondmnt/joplin-mcp | 173 | — | ~897 | Automated safety check: Pass | MIT | |
| AI BrainOotto-AI/claude-content-skills | 130 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Obsidian Project Memorybrycewang-stanford/Auto-Empirical-Research-Skills | 4.6k | — | ~2.4k | Automated safety check: Pass | Custom licence | |
| Qmdbreferrari/obsidian-mind | 5k | — | ~1.7k | Automated safety check: Pass | MIT |
peters/horizon
Run or inspect declared iOS and Android native app tests through Horizon devicetestrun and app MCP tools.
alondmnt/joplin-mcp
Orchestration guidance for Joplin note, notebook, and tag management tools
Ootto-AI/claude-content-skills
Give Claude a permanent, searchable long-term memory using an Obsidian vault as the store.
brycewang-stanford/Auto-Empirical-Research-Skills
This skill should be used when the user asks to maintain an Obsidian knowledge base for a research project, import an existing research repository into Obsidian, keep project memory or daily notes…
breferrari/obsidian-mind
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
swarmclawai/swarmvault
Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, chat-session, context-pack, task-ledger, static AI export, retrieval…
zhitongblog/solomd
Publish a SoloMD release to the stores that have no usable submission API — Google Play Console and Microsoft Partner Center — by driving them through the local Unzoo Browser REST API.
zhitongblog/solomd
Scan competing markdown editors' user feedback (GitHub issues/discussions/releases + closed-source forums) and synthesize themes cross-referenced against SoloMD's own gaps and roadmap.
Categories
Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server. Solomd is an agent skill from zhitongblog/solomd. Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server.
Solomd fits situations like: tasks that involve Note-taking; tasks that involve Git workflow; tasks that involve MCP servers.
Run `npx skills add zhitongblog/solomd --skill solomd -a claude-code`. Or copy the skill folder (marketplace/claude-code-skill/solomd in zhitongblog/solomd) into .claude/skills/solomd in your project. Claude Code loads it when a task matches its description.
Run `npx skills add zhitongblog/solomd --skill solomd -a codex`. Or copy the skill folder (marketplace/claude-code-skill/solomd in zhitongblog/solomd) into .agents/skills/solomd in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zhitongblog/solomd --skill solomd -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/solomd, .gemini/skills/solomd, .github/skills/solomd and .opencode/skills/solomd in your project.
Going by SKILL.md and its folder, Solomd needs a shell for the scripts in its folder and the command-line tools its instructions call (claude, git, bash and cargo). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: solomd:*.
SKILL.md names 1 domain. As links in the text: solomd.app. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Solomd is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Solomd: Horizon App Testing (peters/horizon, 716 stars), Joplin (alondmnt/joplin-mcp, 173 stars), AI Brain (Ootto-AI/claude-content-skills, 130 stars) and Obsidian Project Memory (brycewang-stanford/Auto-Empirical-Research-Skills, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
zhitongblog (a GitHub user) maintains it in zhitongblog/solomd, which has 1,198 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 10, 2026.
Source: zhitongblog/solomd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.