Leon is an open-source personal AI assistant that uses tools, memory, context, and agent-like execution to understand goals and complete tasks. People use it as a practical assistant that can run locally and work across structured workflows, while the catalogue skills support its operation.
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 skills add leon-ai/leon --skill live-tutorialgit clone --depth 1 https://github.com/leon-ai/leonWrote 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.
[](https://agentmods.dev/skills/leon-ai/leon/live-tutorial)<a href="https://agentmods.dev/skills/leon-ai/leon/live-tutorial"><img src="https://agentmods.dev/badge/skills/leon-ai/leon/live-tutorial/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/leon-ai/leon/live-tutorial"><img src="https://agentmods.dev/badge/skills/leon-ai/leon/live-tutorial.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00036 | $0.01143 |
| Opus 5.5 | $0.00014 | $0.00457 |
| Sonnet 5.5 | $0.00007 | $0.00229 |
| Haiku 4.5 | $0.00004 | $0.00114 |
Grade A, and why
live-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 1mo 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 — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Live Tutorial
Demonstrate the requested workflow, then return a verified MP4 made from its real screenshots.
Write captions and annotation text in the language of the user's tutorial request, keeping app control names as displayed.
The request already authorizes completing and rendering the tutorial. Do not ask whether to continue or offer screenshots/text instead of the requested video merely because execution paused. Resume with the same recording, captures, and manifest; ask only for genuinely missing information or authorization.
Use PNG paths returned in each observation's artifacts array. The recording output_dir is the destination for the video, not the location of those screenshots; do not search it for frames. The renderer is ready to run with the manifest below: no source inspection, image-processing code, or dependency setup is needed.
Use the live tool results for recording directories, screenshot paths, and current target tokens. After a pause, read a specific saved artifact only if the checkpoint omits a required value; do not scan directories or reread evidence already available. Each new window observation invalidates earlier tokens, so make one observation with any needed query and screenshot, then act immediately from that same result. Use the shell tool only for the final renderer command.
- Select the target application and one short route from its current view to the requested result. Demonstrate only the requested workflow, not every related option. Do not reset the application or visit unrelated settings merely to create a starting frame. If already at the result, show only the navigation needed to teach the requested step; do not claim a pre-existing state was caused by an action you did not perform.
- Start
computer_use.cua.start_recordingwithrecord_video: false; retainoutput_dir. - Use the shortest supported route: a known keyboard shortcut, an accessibility-backed action, or
computer_use.cua.invoke_menufor native menus; never shell automation. Capture the starting state before acting. During recording, supported input actions automatically return a fresh screenshot and element queries include screenshots. Reuse the returned observation for verification and the next step instead of taking another identical screenshot. Observe again only if the result lacks needed evidence. Captions must describe what you actually did, including any shortcut; retain the meaningful intermediate states. - Always stop recording. Select 2–6 distinct captures from the successful route, normally one per action plus the result; omit setup, failed attempts, retries, and polling. Keep valid captures across retries rather than re-recording the workflow. The final result must agree with the demonstrated actions. Use a short instruction for each action and a confirmation caption for the result.
- Write the manifest below with the file tool, then run the bundled renderer through the shell tool. Copy the returned artifact paths verbatim, including profile and session IDs; do not reconstruct them. Satellite results provide server-local copies for rendering. Do not replace this with a raw screen recording or a custom automation/rendering script. Do not inspect or rewrite the renderer unless it reports an error.
- Check the renderer's
resolvedTargetsagainst the intended controls and the source observations. Correct any mismatch before returningfileMarkerverbatim. The returnedpreviewPathsidentify the rendered step frames. If unfinished, explain the obstacle.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago Changed 1aa427892f99
- 1mo ago Changed · -3 lines · -9 tokens per session f137ebd66c6a
- 1mo ago First seen · 59 lines · 45 tokens per session scan A bb8d9a298689
live-tutorial is a skill published in the GitHub repository leon-ai/leon (17,582 stars, last pushed 4d ago), licensed MIT. It adds 36 tokens to every session and 1,143 once invoked, about $0.0001 per session on Opus 5.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 skills, from other repositories
memorizz-agents
Consult the user's saved MemoRizz agents (each with its own instructions, memory and tools) through the memorizz MCP tools, or hand a bounded task to another agent harness (Codex, Claude Code, pi, Hermes) through MemoRizz. Use when the user mentions a MemoRizz agent by name, asks to "ask my agent", or wants another…
python-release
Handle Python SDK release, build, bump, packaging metadata, PyPI client pin, uv.lock, nox/build workflow, and publish verification changes. Use for Python release process work or dependency pin bumps; do not use for ordinary Python feature implementation.
subscription-setup
A setup workflow for creating recurring medical-learning subscriptions after a doctor’s profile has been registered.
keys-and-harmony-with-pytheory
Analyze and generate keys and chord progressions with PyTheory. Use when the user asks what key some notes are in, the diatonic chords of a key, a Roman- numeral analysis of a progression, what chord comes next, secondary dominants, borrowed chords, chords grouped by function (tonic/subdominant/dominant), the…
explorer-pipeline
Use when asked to make an interactive 3D explorer of a topic from start to finish, go from a topic to a clickable 3D learning page, or run the whole 3D explorer process. Produces a staged run of explorer-interface-brief, model-prompt-pack and explorer-viewer-builder in order for one topic, with the hand-offs between…
chat_by_keywords
A WeChat automation tool that chats with a named contact when messages contain specified keywords. You provide the contact and the list of trigger words.