Agent skill
QED and Sic as a skill for coding agents. The agent installs it, and you approve the sign-in with one click.
| For | Claude Code, and other coding agents that load Agent Skills |
| Contents | SKILL.md and one Python script, scripts/etal.py (standard library only) |
| Sign-in | One approval in the browser. No key to copy. |
| Limits | The same allowance and rate limits as the API, on the same account |
1Install
Give your agent this prompt:
Read https://etal-labs.com/docs/skill.md and follow it to install the Et Al. skill for me.
The agent downloads the two files into its skills directory, starts the sign-in and opens a page in your browser. Check that the page shows the code the agent gave you, and approve. From then on, ask for what you want: a section drafted from your notes, a paragraph revoiced, a LaTeX file polished, a text checked.
Or install it by hand (the paths are for Claude Code):
mkdir -p ~/.claude/skills/etal/scripts && cd ~/.claude/skills/etal
curl -fsSL https://etal-labs.com/skill/SKILL.md -o SKILL.md
curl -fsSL https://etal-labs.com/skill/scripts/etal.py -o scripts/etal.py
python3 scripts/etal.py loginOther agents read skills from ~/.agents/skills/etal/ or their own skills directory. For one project only, use .claude/skills/etal/ inside it. The skill is also available as one archive.
2Skill or MCP server
Both give an agent the same models on the same account. Which one fits depends on where the agent runs.
| Skill | For agents with a shell, such as Claude Code. The agent sets it up itself. It works on your files directly: a LaTeX file is rewritten into a copy next to the original, and long documents do not pass through the conversation. |
| MCP server | For Claude on the web and desktop, Cursor, and clients without a shell. Nothing is installed; you add a connector and sign in. |
3Commands
The agent runs these for you. They also work from a terminal.
login, logout, status | Sign in through the browser, remove the stored key, show the allowance used and the models. |
draft | QED writes a passage from a file of notes, optionally in the voice of passages you supply and as a section of a longer document. |
rewrite | QED polishes or revoices a passage. Markdown in, Markdown out. |
paragraphs | Numbers the prose paragraphs of a LaTeX or Markdown file and lists what will be left alone. |
rewrite-doc | Rewrites chosen paragraphs of a LaTeX or Markdown file into a copy, with a report for each paragraph. The original is never changed. |
check | Compares an output with its source: numbers, citations, formulas, hedging, and claims added, dropped or changed. draft and rewrite run it on their own output. |
detect | Sic lists the sentences above its thresholds, with the rate at which each threshold flags human text. |
disclosure | Drafts an AI-use disclosure from your recent calls, in a journal's house form. |
etal.py draft notes.md --voice voice.md --out intro.md
etal.py rewrite-doc paper.tex --paragraphs 3-9 --mode revoice --voice voice.md
etal.py detect manuscript.md4What the skill tells the agent
- Ask the author for two or three passages of their own writing, and use them as the voice.
- Draft section by section, with every fact, number and citation in the notes.
- Fix everything the check marks as an error; read what it marks for review.
- Use Sic to see which passages read as machine-written, and revise those for substance. Never rephrase text to lower a score.
- Show the author the changes before anything replaces their file, and offer the disclosure statement at the end.
5Sign-in and privacy
loginshows a short code and opens the console. When you approve, the script receives a new API key and stores it in~/.config/etal/credentials.json, readable only by you. The key is listed under API keys, where you can revoke it.- Approve a code only if you or your agent started the sign-in a moment ago. Codes last fifteen minutes and work once.
- If
ETAL_API_KEYis set, the script uses that key and skips the sign-in. - The script talks to
api.etal-labs.comand to nothing else. The text it sends is processed and not stored.