dailyzen-skill: The tiny Claude skill that turns context into calm
A zero-dependency skill for Claude Code that stays dormant until the agent needs it, then pulls one quote from a local corpus and gets out of the way.
- dailyzen-skill matters less as a quote generator than as a proof that AI agents can load capabilities only when they are needed.
- The functional core is three files and one local corpus, which keeps the context footprint tiny without losing control over the source of truth.
- Its implementation choices, including node:crypto.randomInt, synchronous file reads, and empty-array checks, favor predictability over cleverness.
- Compared with fortune, prompt hacks, and platform digests, it points toward a portable distribution model for agent-native tools.
The skill that only exists when Claude needs it
Most tools are always present. You install them, run them, and remember them. dailyzen-skill is more interesting because it behaves like a latent capability: Claude Code can load it when the moment calls for it, then drop the extra context once the task is done. That is a small interface trick with a bigger implication. It treats software as something the agent summons, not something it must carry around all day.
There is no sprawling origin story here. The repo reads like a compact proof of concept, and that helps. When a project is this small, every file is a design decision, not just an implementation detail. You can see the shape of the idea without any product theater.
deliciously tiny specification
That phrase fits the repo well. The skill format stays small on purpose, which is exactly why it works inside an AI agent. The point is not to make Claude remember everything. The point is to let it load just enough structure to do one useful thing, then stop.
Why a zen quote belongs in the terminal
The quote itself is not the point. The point is timing. A short line of calm inside a terminal session can act like a rhythm break, the same way a timer or a saved snippet can interrupt momentum just enough to reset attention. The project is modest about this. It does not pretend to solve burnout. It just gives Claude Code a tiny, local ritual that can appear on demand.
The three-file machine
The repo is intentionally tiny, and that is the design. .claude-plugin/ tells the marketplace how to discover the skill. skills/zen/SKILL.md is the contract the agent reads first. random-quote.js handles execution, and quotes.json is the local source of truth. The whole system is less a framework than a straight path from discovery to output.
That flow is what makes the repo feel agent-native. The agent does not need to memorize the whole skill. It needs just enough metadata to know when to open the next layer, and when to stop carrying context it no longer needs.
Why the random picker is more deliberate than it looks
Inside random-quote.js, the choices are plain but careful. The script uses Node built-ins only, reads the JSON file synchronously, guards against an empty list, and uses node:crypto.randomInt for uniform selection. None of that is flashy. All of it is the point.
const { randomInt } = require('node:crypto');
const fs = require('node:fs');
const path = require('node:path');
const quotes = JSON.parse(
fs.readFileSync(path.join(__dirname, 'quotes.json'), 'utf8')
);
if (!Array.isArray(quotes) || quotes.length === 0) {
process.stderr.write('No quotes available.\n');
process.exit(1);
}
const choice = quotes[randomInt(quotes.length)];
process.stdout.write(`${choice.quote} - ${choice.author}\n`);
The JSON file also hints at future directions. The corpus contains 113 quotes, and each entry carries metadata such as rank and, in some cases, lens. That means the data model could later support filtering, weighting, or different moods without changing the outer contract. That kind of foresight is subtle, but it matters more than adding another dependency.
What this replaces
Seen beside older patterns, dailyzen-skill is a shift in distribution, not just in content. It is not trying to outdo fortune on novelty, or win on breadth against a daily digest product. It is trying to be the cleanest possible way for an agent to fetch a tiny capability from local files and then let go of it.
| Pattern | Trigger | Where logic lives | Context footprint | Data source | Best use case |
|---|---|---|---|---|---|
| fortune | A person runs it manually | Shell and text file | None inside agent context | Local quote corpus | A classic terminal ritual |
| Prompt hacks | A user pastes instructions | Inside the prompt itself | High and sticky | Whatever the model remembers | One-off behavior |
| Platform digests | A service pushes a feed | Vendor backend | Outside the agent | Server-side curation | Always-on briefing |
| dailyzen-skill | Claude loads the skill on demand | SKILL.md plus Node script | Tiny until invoked | Local JSON quotes | Portable agent-native micro-task |
The table makes the category shift visible. dailyzen-skill is not a smaller fortune. It is a packaging model for tools that should stay invisible until asked for, then vanish again.
A tiny template for agent-native software
That is why this repo is worth attention even if you never want a zen quote in your terminal. It shows a clean pattern for building around agents: keep the manifest small, keep the data local, make execution deterministic, and let the capability appear only when it has work to do. In a future full of chatty tools, restraint becomes a feature.