Khazix WeChat Article Writer
KKKKhazix/khazix-skills
Writes long-form WeChat official account articles in the personal style of the Khazix account, from briefs, links, PDFs or rough notes, with a topic quality check.
Write an Emacs blog post in James Dyer's voice for www.emacs.dyerdwelling.family.
$ npx skills add captainflasmr/ollama-buddy --skill blog-writer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install captainflasmr/ollama-buddy blog-writer --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/captainflasmr/ollama-buddy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/blog-writer .claude/skills/blog-writer && 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 "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .claude/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writerType 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 captainflasmr/ollama-buddy --skill blog-writer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install captainflasmr/ollama-buddy blog-writer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/captainflasmr/ollama-buddy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/blog-writer .agents/skills/blog-writer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .agents/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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 captainflasmr/ollama-buddy --skill blog-writer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install captainflasmr/ollama-buddy blog-writer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/captainflasmr/ollama-buddy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/blog-writer .cursor/skills/blog-writer && 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 "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .cursor/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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/captainflasmr/ollama-buddy.git --path .agents/skills/blog-writer--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 captainflasmr/ollama-buddy --skill blog-writer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install captainflasmr/ollama-buddy blog-writer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/captainflasmr/ollama-buddy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/blog-writer .gemini/skills/blog-writer && 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 "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .gemini/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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 captainflasmr/ollama-buddy blog-writerInstalls 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 captainflasmr/ollama-buddy --skill blog-writer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/captainflasmr/ollama-buddy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/blog-writer .github/skills/blog-writer && 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 "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .github/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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 captainflasmr/ollama-buddy --skill blog-writer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install captainflasmr/ollama-buddy blog-writer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/captainflasmr/ollama-buddy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/blog-writer .opencode/skills/blog-writer && 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 "blog-writer" agent skill from https://github.com/captainflasmr/ollama-buddy/tree/main/.agents/skills/blog-writer into .opencode/skills/blog-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-writer", 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.
blog-writerWrite an Emacs blog post in James Dyer's voice for www.emacs.dyerdwelling.family.
Blog Writer is an agent skill from captainflasmr/ollama-buddy. Write an Emacs blog post in James Dyer's voice for www.emacs.dyerdwelling.family. Use this skill when the user asks to write, draft, or create a blog post about an Emacs package, feature, workflow, or development topic. Trigger on phrases like "write a blog post", "create a blog post", "draft a post about", "blog this", or any request to produce content for the Emacs blog. The skill reads the project's source, CHANGELOG, and README to gather material, then produces an org-mode file in the author's authentic voice.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Writing & Content, covering Blog and article writing. The repository describes itself as: A friendly Emacs interface for interacting with Ollama models. The licence is GPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 12eaf7f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are org).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Blog Writer loads about 2.1k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 1,121 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 captainflasmr/ollama-buddy at commit 12eaf7f, republished under its GPL-3.0 licence (© captainflasmr). 1,121 words, ~2,116 tokens.
.claude/skills/blog-writer/SKILL.md (or your agent's skills folder).You are writing a blog post for James Dyer's Emacs blog (www.emacs.dyerdwelling.family). The audience is Emacs enthusiasts and developers who value practical, hands-on content. Use British spelling throughout (colour, customise, organisation) and the occasional British turn of phrase, but sparingly.
Before writing anything, read the project to understand what you are writing about.
defcustom
entries, keybindings, and interactive commands.James writes like he is thinking out loud. Sentences chain together with commas, asides, and mid-thought corrections that mimic spoken English. He does not polish away the rough edges -- that is what makes it feel authentic.
Use this structure as a guide, not a rigid template. Adapt to the content.
Every post starts with:
#+title: Package Name X.Y.Z: Short Descriptive Subtitle
#+author: James Dyer
#+date: YYYY-MM-DD
#+options: ':t toc:nil author:nil email:nil num:nil title:nil
#+startup: showallLead with personal context -- what sparked this, what has changed, why now. Not an abstract summary. Examples of good openings:
Place #+hugo: more after the opening paragraphs.
Use * for main sections and ** for subsections (org-mode heading levels).
#+begin_src elisp blocks. Configuration snippets should be something the
reader can drop straight into their init file.#+begin_example blocks showing what the user actually sees (box-drawing
characters, keybinding workflows, buffer output).*Bold* labels with -- separators:
*Highlight* -- classic background colour on the annotated region= delimiters: =C-c a j=, =M-n==inline code=: =simply-annotate-mode=Briefly acknowledge alternative packages and credit them honestly. Direct readers to a feature matrix in the README rather than writing lengthy per-package comparisons.
End with:
Keep it short and useful. Optionally add a casual forward-looking remark.
[[https://github.com/captainflasmr/PACKAGE][Package Name]]=M-x function-name==C-c a j=, =M-x=blog.org in the project root (or to a path the user specifies).These are real excerpts from James's published posts. Use them to calibrate tone, not to copy verbatim.
I have been busy improving my annotation package! Simply Annotate, the latest release is 0.9.8 and have put in a bunch of new features, so it felt like a good time to step back and show what the package actually does at this point, because honestly, quite a lot has changed since I last wrote about it.
So, I immediately wondered, could I build this into Emacs?, actually no, firstly I thought, are there any packages for Emacs that can do this?, of course there are!, the spray package from MELPA is a more mature, feature-rich option if you're looking for production-ready RSVP reading in Emacs, and also there is speedread. However, there's something satisfying about having a compact, single-function solution that does exactly what you need, so lets see if I can build one!
Secondly, the Texinfo manual for this package now magically installs itself when pulling from MELPA. I fluked this!, I just thought it was sensible to create a docs directory and then plonked an info file there.
At first, I leaned on curl since it was straightforward and matched the official ollama examples. My approach with a project such as this is generally to get things working quickly and then refine/iterate later. However, once I had a solid design (and design principles!), I wanted to eliminate external dependencies like curl.
© captainflasmr, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/blog-writer of captainflasmr/ollama-buddy.
Open the folder on GitHubat commit 12eaf7f
Blog Writer 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 |
|---|---|---|---|---|---|---|
| Blog Writer this skillcaptainflasmr/ollama-buddy | 103 | — | ~2.1k | Automated safety check: Pass | GPL-3.0 | |
| Khazix WeChat Article WriterKKKKhazix/khazix-skills | 21k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Figurevectorize-io/hindsight | 48k | — | ~1.9k | Automated safety check: Pass | MIT | |
| SepiaNanako0129/sepia | 3.1k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Blog Post Draftingluongnv89/claude-howto | 42k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Notion To Blogwasp-lang/wasp | 19k | — | ~922 | Automated safety check: Pass | MIT |
KKKKhazix/khazix-skills
Writes long-form WeChat official account articles in the personal style of the Khazix account, from briefs, links, PDFs or rough notes, with a topic quality check.
vectorize-io/hindsight
Draw an animated figure (boxes, arrows, moving data) as one self-contained SVG for a GitHub README, PR, issue or blog post.
Nanako0129/sepia
Make AI-generated writing read as human-written, in fiction and in professional prose.
luongnv89/claude-howto
Guides drafting a blog post from an idea and optional source material: research, brainstorming, outlining and version-tracked drafts, with user approval at each step.
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
nteract/semiotic
Author a new entry for the Semiotic blog. An agent skill from nteract/semiotic.
captainflasmr/ollama-buddy
Assist with Emacs Lisp (elisp) development, debugging, and parenthesis matching.
captainflasmr/ollama-buddy
Review Emacs Lisp (elisp) packages for bugs, style/convention violations, and optimisation opportunities.
captainflasmr/ollama-buddy
Analyse a project's source code and generate a simply-annotate database file with LLM-created annotations categorised by tag: defun for functions and large syntactical blocks, line for smaller…
captainflasmr/ollama-buddy
Write an r/emacs Reddit post in James Dyer's voice for announcing or discussing an Emacs package.
captainflasmr/ollama-buddy
Expert code refactoring and optimization with analysis, improvements, and documentation.
captainflasmr/ollama-buddy
Review Emacs blog posts for technical accuracy, naming conventions, and correct Emacs idioms.
Categories
Write an Emacs blog post in James Dyer's voice for www.emacs.dyerdwelling.family. Blog Writer is an agent skill from captainflasmr/ollama-buddy.family.
Blog Writer fits situations like: the user asks to write; create a blog post about an Emacs package; development topic; phrases like write a blog post.
Run `npx skills add captainflasmr/ollama-buddy --skill blog-writer -a claude-code`. Or copy the skill folder (.agents/skills/blog-writer in captainflasmr/ollama-buddy) into .claude/skills/blog-writer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add captainflasmr/ollama-buddy --skill blog-writer -a codex`. Or copy the skill folder (.agents/skills/blog-writer in captainflasmr/ollama-buddy) into .agents/skills/blog-writer 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 captainflasmr/ollama-buddy --skill blog-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blog-writer, .gemini/skills/blog-writer, .github/skills/blog-writer and .opencode/skills/blog-writer in your project.
SKILL.md names no scripts, command-line tools or credentials: Blog Writer is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Blog Writer is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k 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 Blog Writer: Khazix WeChat Article Writer (KKKKhazix/khazix-skills, 21k stars), Figure (vectorize-io/hindsight, 48k stars), Sepia (Nanako0129/sepia, 3.1k stars) and Blog Post Drafting (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
captainflasmr (a GitHub user) maintains it in captainflasmr/ollama-buddy, which has 103 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 10, 2026.
Source: captainflasmr/ollama-buddy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.