touch-grass

touch-grass is a skill for Claude Code from jd20030807/touch-grass. It costs 61 tokens per session (1,617 once invoked), scanned A, original, MIT.

A break-reminder skill that shows cat GIFs while you use coding agents such as Codex or Claude Code.

In plain words
What is it for?
It is for changing reminder timing, enabling or disabling break types, setting bedtime, adding custom reminders, and snoozing notifications.
Why use it?
It helps reduce long uninterrupted work sessions by letting you manage reminders, quiet hours, and snoozes.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions Claude Code; mentions Codex.

Part of the touch-grass plugin — 1 skill, 5 hooks shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/jd20030807/touch-grass/touch-grass
Any agent
npx skills add jd20030807/touch-grass --skill touch-grass
Clone the repo
git clone --depth 1 https://github.com/jd20030807/touch-grass

Made for: Claude Code.

Or install touch-grass, the plugin that ships this one along with the rest of its 1 skill, 5 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for touch-grass

README.md
[![agentmods](https://agentmods.dev/badge/skills/jd20030807/touch-grass/touch-grass.svg)](https://agentmods.dev/skills/jd20030807/touch-grass/touch-grass)
Your own site
<a href="https://agentmods.dev/skills/jd20030807/touch-grass/touch-grass"><img src="https://agentmods.dev/badge/skills/jd20030807/touch-grass/touch-grass.svg" alt="Measured on agentmods" height="20"></a>
Per session 61 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,617 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00061 $0.01617
Opus 5 $0.00030 $0.00809
Sonnet 5 $0.00012 $0.00323
Haiku 4.5 $0.00006 $0.00162

Measured 5d ago against content hash d16444f1b9f5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

touch-grass scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/touch-grass/skills/touch-grass/SKILL.md · 63 lines

How it starts

The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Touch Grass

Translate the user's request into the bundled touch-grass CLI. Prefer the executable named touch-grass when it is on PATH. Otherwise run node <plugin-root>/bin/touch-grass.mjs, where <plugin-root> is the plugin directory containing this skill under skills/touch-grass/.

At the start of every Touch Grass interaction, run touch-grass welcome. It prints the first-use explanation only once. When it prints text, show that text before the requested outcome. When it prints nothing, continue normally.

Present welcome and settings output verbatim. Do not add companion names, rotation behavior, popup-delivery details, or other product facts to those introductions.

Do not edit ~/.touch-grass/config.json directly. The CLI validates and atomically saves changes.

The product vocabulary is intentionally human. Do not expose implementation labels such as idle reset, delivery, order, activeMs, state files, or raw configuration unless the user explicitly asks for developer diagnostics. When the user asks what they can change, run touch-grass settings and present its natural-language examples rather than a settings inventory.

Each reminder has its own schedule. Do not translate a reminder-specific request into one global interval.

Common requests:

  • “Remind me to walk around every 40 minutes” → touch-grass reminders interval walk 40
  • “Remind me to drink water every 45 minutes” → touch-grass reminders interval water 45
  • “Move my snack reminders to 11 AM and 4 PM” → touch-grass reminders times snack 11:00,16:00
  • “My bedtime is 11:30 PM; warn me 30 minutes before” → touch-grass reminders bedtime 23:30 --wind-down 30
  • “Keep quiet from 10 PM to 8 AM” → touch-grass config set quiet-hours 22:00-08:00
  • “Turn snack reminders off” → touch-grass reminders disable snack
  • “Turn bedtime reminders back on” → touch-grass reminders enable bedtime
  • “Add a breathing reminder every 45 minutes” → touch-grass reminders add breathing --title "Breathing break" --message "Take five slow breaths." --interval 45
  • “Add a breathing reminder using this GIF” → the same command plus --gif "/absolute/path/breathe.gif". Only pass --gif when the user supplies an animation; without one the reminder shows both bundled companions.
  • “Use my cat Juniper from this folder” → touch-grass companions add juniper --name "Juniper" --dir "/absolute/path"
  • “Rotate my cats” → touch-grass companions use rotate
  • “What can I customize?” → touch-grass settings
  • “Pause reminders for 30 minutes” → touch-grass snooze 30
  • “Don't use Nian” / “only show my own cat” → touch-grass companions remove nian (bundled cats are hidden, not deleted)
  • “Bring Nian back” → touch-grass companions use nian, or touch-grass companions add nian with no --dir. A hidden bundled cat is never gone; do not ask the user for animation files to restore one.

When the user says reminders have stopped, are not appearing, or seem broken, run touch-grass doctor first. If popupReady is false, tell them the reminder companion is not running and to open “Touch Grass.app”. If helperVersionMatches is false, tell them the companion is an older build and needs rebuilding with npm run install:macos-helper. Do not guess at causes before running it.

When the user does not dictate the exact banner wording, write --title and --message yourself in the voice of the built-in reminders: a short plain title, then one warm sentence that says what to do. Read presets.json for the house voice rather than inventing a new one, and keep the user's own words when they supplied them.

For a companion folder, require animated .gif or .webp files named water, stretch, snack, walk, eyes, and bedtime. Those six cover every reminder: the bedtime animation serves both the wind-down and bedtime stages, and the snack animation covers lunch and dinner unless the folder also has lunch and dinner files of its own. Do not invent asset paths; inspect the supplied folder first when needed.

Read the full file on GitHub · 63 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 63 lines · 61 tokens per session scan A d16444f1b9f5

Subscribe to this mod's changes

touch-grass is a skill published in the GitHub repository jd20030807/touch-grass (3 stars, last pushed 9d ago), licensed MIT. It adds 61 tokens to every session and 1,617 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories