Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .claude/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
Type 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.
skills CLI
$ npx skills add m98/fluent --skill fluent-writing -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .agents/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
skills CLI
$ npx skills add m98/fluent --skill fluent-writing -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .cursor/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add m98/fluent --skill fluent-writing -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .gemini/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
GitHub CLI
$ gh skill install m98/fluent fluent-writing
Installs 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).
skills CLI
$ npx skills add m98/fluent --skill fluent-writing -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .github/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
skills CLI
$ npx skills add m98/fluent --skill fluent-writing -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "fluent-writing" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-writing into .opencode/skills/fluent-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-writing", 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.
Facts
Skill name
fluent-writing
GitHub stars
421
Token cost
~1.8k tokens
SKILL.md length
661 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT
At a glance
Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback.
Works in 9 steps: Load context → Pick scenario type → Present the task → …
Agent Workflows work in your project
SKILL.md covers Overview, When to Use, Instructions and Examples, plus 2 more sections
Calls python3
What it does
Fluent Writing is an agent skill from m98/fluent. Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback. Triggered only when the learner types /fluent-writing. Selects a scenario matched to mastery, lets the learner compose, then analyzes grammar, register, vocabulary, structure, and spelling before updating all databases.
Its SKILL.md is about 1.8k 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 Agent Workflows. The repository describes itself as: The AI Language Learning Kit for Claude Code and others. The licence is MIT.
Read from SKILL.md and the folder at commit 86fb80f. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves these tools, so the agent can use them without asking each time:
Read
Write
Bash
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
python3
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Fluent Writing loads about 1.8k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 661 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~100
When it runs· the whole SKILL.md, loaded when a task matches
~1.8k
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.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
allowed-tools: Read, Write, Bash
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.
Download SKILL.mdSave it as .claude/skills/fluent-writing/SKILL.md (or your agent's skills folder).
name
fluent-writing
description
Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback. Triggered only when the learner types /fluent-writing. Selects a scenario matched to mastery, lets the learner compose, then analyzes grammar, register, vocabulary, structure, and spelling before updating all databases.
allowed-tools
Read, Write, Bash
disable-model-invocation
true
Writing Practice Session
Overview
Full-text writing practice with systematic correction. One scenario per session, detailed feedback broken down by severity and category, DB update at end. Mastery-driven scenario selection keeps the task at the right level — challenging, not frustrating.
When to Use
Trigger this skill only when the learner types /fluent-writing. The skill is gated with disable-model-invocation: true — a 15-20 min interactive session with DB writes should never start from an ambiguous prompt.
Skip this skill in favor of /fluent-vocab if the learner has not yet hit mastery 2 in basic vocabulary — writing needs a minimum word bank.
errors[] — one per distinct pattern found (dedupe; the script bumps frequency)
focus_next_session[] — top 2 patterns to drill
Also save the exchange as /results/fluent-writing-session-{NNN}.md with the full task, the learner's original text, the corrected version, and the error table. The fluent-session-analyzer skill depends on this format.
Examples
Show full SKILL.md (324 more words)Show less
Example 1 — formal email task (Dutch A2)
✍️ Writing Exercise
Scenario: You need to cancel a doctor's appointment you have on Thursday.
Task: Write a formal email to the doctor's office in Dutch.
Requirements:
Length: 40-60 words
Include: greeting, reason, request for new appointment, closing
Register: formal
Level: A2
Write your email below:
Learner: "Hallo, Ik schrijf je omdat ik kan niet komen op donderdag. Ik ben ziek. Kunnen we een andere dag afspreken? Bedankt, Mohammad"
grammar: "ik kan niet komen" is OK standalone, but after "omdat" Dutch word order flips: "omdat ik niet kan komen".
Moderate: 🟡
missing: no formal closing. Use "Met vriendelijke groet,".
Minor: 🟢
Capitalize "Donderdag"? Actually no — Dutch doesn't capitalize weekdays. You were right.
📝 Corrected Version
Beste meneer/mevrouw,
Ik schrijf u omdat ik niet kan komen op donderdag. Ik ben ziek.
Kunnen we een andere dag afspreken?
Met vriendelijke groet,
Mohammad
Fluent Writing 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.
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Atomically update all 6 Fluent learner databases (learner-profile, progress, mistakes, mastery, spaced-repetition, session-log) at session end by calling .claude/hooks/update-db.py with a single…
Canonical feedback template for every learner answer in the Fluent system — celebrate correct parts, correct mistakes with category and brief explanation, show the full correct version, score out of…
Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews.
Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback. Fluent Writing is an agent skill from m98/fluent. Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback.
When should I use Fluent Writing?
Fluent Writing fits situations like: agent Workflows work in your project.
How do I install Fluent Writing in Claude Code?
Run `npx skills add m98/fluent --skill fluent-writing -a claude-code`. Or copy the skill folder (.claude/skills/fluent-writing in m98/fluent) into .claude/skills/fluent-writing in your project. Claude Code loads it when a task matches its description.
How do I install Fluent Writing in Codex?
Run `npx skills add m98/fluent --skill fluent-writing -a codex`. Or copy the skill folder (.claude/skills/fluent-writing in m98/fluent) into .agents/skills/fluent-writing in your project. Codex loads it when a task matches its description.
Can I use Fluent Writing in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add m98/fluent --skill fluent-writing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fluent-writing, .gemini/skills/fluent-writing, .github/skills/fluent-writing and .opencode/skills/fluent-writing in your project.
What does Fluent Writing need to run?
Going by SKILL.md and its folder, Fluent Writing needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Bash.
Does Fluent Writing access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Fluent Writing safe to install?
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
What licence does Fluent Writing use?
Fluent Writing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Fluent Writing use?
About 1.8k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Fluent Writing?
Skills that share tags, products or a category with Fluent Writing: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 296k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Fluent Writing?
m98 (a GitHub user) maintains it in m98/fluent, which has 421 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on June 15, 2026.
Source: m98/fluent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.