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.
npx agentmods add commands/datathings/marketplace/tutorialgit clone --depth 1 https://github.com/datathings/marketplaceWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00015 | $0.03178 |
| Opus 5 | $0.00008 | $0.01589 |
| Sonnet 5 | $0.00003 | $0.00636 |
| Haiku 4.5 | $0.00002 | $0.00318 |
Grade A, and why
tutorial 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 2d 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.
How it starts
The opening of the file, as written. The whole thing — 345 lines — stays where its author put it; the contents beside it link to each section on GitHub.
GreyCat Interactive Tutorial
Purpose: progressive hands-on learning of GreyCat — theory + runnable code + validation. 11 sequential modules (each builds on the prior), ~4.5 hours total.
| # | Module | Time | Topic |
|---|---|---|---|
| 1 | Basics | 20m | Types, nullability, functions |
| 2 | Persistence | 25m | node<T> vs plain objects |
| 3 | Collections | 30m | nodeList/Index/Time/Geo |
| 4 | Modeling | 25m | Relationships + indices |
| 5 | Services | 20m | Abstract type + static fns |
| 6 | APIs | 25m | @expose, @permission, @volatile |
| 7 | Testing | 20m | @test, Assert |
| 8 | Parallelization | 25m | Jobs, await |
| 9 | Time & Geo | 30m | nodeTime, nodeGeo |
| 10 | Advanced | 30m | Inheritance, polymorphism |
| 11 | Frontend | 35m | Lit + Web Awesome + lucide-static, Lighthouse, LLM-friendly SEO |
Progress Tracking
.greycat-tutorial-progress:
{
"started": "<ISO>",
"current_module": 5,
"completed_modules": [1, 2, 3, 4],
"last_session": "<ISO>"
}
Step 1: Check progress + choose path
If file exists: show resume prompt. Else: create with current_module: 1.
Ask (AskUserQuestion):
- Continue from Module N
- Start from beginning
- Jump to specific module
- Exit
Module 1: Basics (20m)
Concept: statically-typed, non-null by default, no ternary (use if/else). Primitives: int, float, bool, String, char, time.
fn greet(name: String?): String {
if (name == null) { return "Hello, stranger!"; }
return "Hello, ${name}!";
}
Exercise (tutorial/module1_basics.gcl):
fn calculate_age(birth_year: int, current_year: int): int {
return 0; // TODO
}
@test fn test_calculate_age() {
Assert::equals(calculate_age(1990, 2024), 34);
Assert::equals(calculate_age(2000, 2024), 24);
}
Validate: greycat test test_calculate_age (a @test function name, NOT a file path). Hint: current_year - birth_year.
Module 2: Persistence (25m)
Concept: separate transient (RAM) from persistent (storage).
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.
- 2d ago First seen · 345 lines · 15 tokens per session scan A 95e6391952c3
tutorial is a command published in the GitHub repository datathings/marketplace (11 stars, last pushed 4d ago), licensed Apache-2.0. It adds 15 tokens to every session and 3,178 once invoked, about $0.0001 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-30.
Other commands, from other repositories
learn
Force claude-smart to extract learnings from this session now.
component
Scaffold a new React component grounded in the paper-mono primitives. Requires explicit kind or a nearest-existing-component match. No empty divs, no speculative scaffolding.
memory-store
Store an insight, decision, or pattern to memory.
review
Cold re-quiz on code that already shipped — your own session commits, not the change in front of you.
no-vibe
Enter no-vibe mode in OpenCode (tutor mode, no direct project file writes).
teach-me-testing
Teach testing progressively through structured sessions. Use when user says ""lets learn testing"" or ""I want to study test practices"".