Agent skill

Course Viewer

by madhvantyagi in madhvantyagi/Gnos

Show an enrolled course and its lessons. An agent skill from madhvantyagi/Gnos.

MITAuto-check passed

Install Course Viewer

skills CLI
$ npx skills add madhvantyagi/Gnos --skill course-viewer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install madhvantyagi/Gnos course-viewer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/course-viewer .claude/skills/course-viewer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
course-viewer
GitHub stars
339
Token cost
~1.8k tokens
SKILL.md length
967 words
Files
35 (incl. scripts, references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Show an enrolled course and its lessons. An agent skill from madhvantyagi/Gnos.

  • SKILL.md covers Complete the lesson handoff…, Render, The layout and Compatibility with other skills, plus 1 more section
  • Runs JavaScript scripts from its folder; calls python

What it does

Course Viewer is an agent skill from madhvantyagi/Gnos. Show an enrolled course and its lessons. Use lesson-design to author or repair the current lesson before delivering teaching; render published content and serve the local page with saved exercises.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 39 other files, including scripts and reference files (for example `references/vendor/README.md`, `references/vendor/highlight/highlight.min.js` and `references/vendor/katex/auto-render.min.js`).

The repository describes itself as: Teaching harness , help you to learn anything , It teaches like real teacher , design curriculum , generate videos , simulations , images , pdfs , tracks your learning style etc. The licence is MIT.

Example prompts

  • “/course-viewer”

Requirements

  • Python 3
  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit 040fa15. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Course Viewer loads about 1.8k tokens when it runs, and up to ~252k if it reads all its reference files. Until then it costs about 53 tokens; SKILL.md has 967 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~53
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~252k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from madhvantyagi/Gnos at commit 040fa15, republished under its MIT licence (© madhvantyagi). 967 words, ~1,831 tokens.

Download SKILL.mdSave it as .claude/skills/course-viewer/SKILL.md (or your agent's skills folder). This skill also uses 34 other files; get the full folder from GitHub.
name
course-viewer
description
Show an enrolled course and its lessons. Use lesson-design to author or repair the current lesson before delivering teaching; render published content and serve the local page with saved exercises.

Course viewer

Render the enrolled course and its published lessons. The HTML page and its neighboring assets/ directory can be read locally; the course server saves exercises to JSON and reveals answers after submission. Math uses KaTeX. Pale peach editorial page: top bar with GNOS + tabs, hero with giant title + field metadata, curriculum list + topic details.

Use this skill when the learner asks to see the course or answers yes after the current lesson is ready. Re-render after a changed lesson or artifact before giving a page link. A learner who explicitly asks for only the outline may see its contents and sources through --outline-only. For an explicit context load at this step, use assemble_context.py --mode viewer --subject <subject> --learner <learner> --course-id <course-id>. Render only from the enrolled workspace at learners/<learner>/courses/<course-id>, never from a blueprint outputs/ file.

Complete the lesson handoff before showing teaching

Read the current topic and its published lesson. Course design supplies the outline; lesson-design supplies the teaching. If the current topic has no ready lesson, use that skill and its lesson design reference to author it before delivering a lesson page. If the learner reports a shallow lesson, set its publication back to draft, use the same reference to repair its explanation and examples, write a new design_receipt, and re-publish as ready — do not edit a ready file in place.

Do not write lesson content from course.json inside this viewer workflow. The renderer does not call a model or invoke skills: the host must perform the handoff, review the lesson, and publish it. A normal render requires a ready lesson for the current topic whose design_receipt.course_fingerprint equals the enrolled course.json fingerprint and whose design_receipt.review is pass. It fails otherwise with instructions to run lesson design first. Use --outline-only only for an explicitly requested outline or contents preview. If rendering fails, do not link an earlier portal/index.html or say the course is ready to view. The local server also checks the current lesson before starting and whenever it serves the page, so an old page cannot be used after the course moves on. The receipt checks a recorded handoff and course match. It cannot prove that the host read the skill or that the explanation is good; review the lesson.

Render

bash
.venv/bin/python skills/course-viewer/scripts/render_viewer.py learners/alex/courses/motion

The script reads course.json, published lessons, and the artifact manifest, then writes portal/index.html and copies the bundled KaTeX, syntax-highlighting, and math-font assets to portal/assets/.

Open it locally:

bash
.venv/bin/python skills/course-viewer/scripts/serve_course.py learners/alex/courses/motion --port 8080
# visit http://127.0.0.1:8080/portal/

Use this server for exercise interaction. A plain file or generic static server cannot write a learner response to the course workspace. Save answer persists an attempt under submissions/<exercise-id>/<attempt-id>.json; only a successful save enables Show answer. The solution is fetched on that explicit request and the reveal is recorded separately from the learner's response.

The layout

The design lives in references/example.html. Follow that layout and the approved palette:

  • the approved forest palette: pale peach (#FDE5D4), dark ink (#001524), green links and dividers (#445D48), brown state labels (#5E3023); solid fills, 2–4 pixel radii, and monospace metadata
  • topbar: GNOS logo left, tabs center (Overview, Lessons, Exercises, Sources, Artifacts with teal underline for active), All courses → right
  • hero: giant condensed title + Rev, mono subtitle; right meta block with FIELD / LEVEL / RESOURCES behind a vertical divider
  • overview is Curriculum (left) + Topic details (right): chapters as "Chapter 01 + Title", topics as numbered rows with Current (navy) / Planned (plum) + › chevron; selected row has solid fill and a green edge; clicking a row updates Topic details (eyebrow, plum title, Subtopics / State / Formats / Evidence / Sources)
  • lessons show their actual block formats as chips: manim, image, simulation, text (kept as chip manim hooks, hidden in curriculum rows, visible in Lessons). Older course plans still show their planned formats. A chip turns ready (chip manim ready) when its artifact is registered
  • videos, images, and sandboxed simulations render full width inside frames with slight rounding, captions below, never overlapping
  • arrow keys step between lessons; lesson hooks (#tabs, #lesson-list, .lesson, #prev-link / #next-link) stay intact
Show full SKILL.md (314 more words)Show less

Compatibility with other skills

The viewer renders whatever is registered in the course artifact manifest, whatever made it:

  • manim-voice-animation videos -> watch, inline <video>
  • host-generated images -> generated, inline <img>
  • interactive simulations (HTML) -> sandboxed <iframe>
  • pdf handouts and documents -> resources, open links

The lesson blocks show which forms were used. Older courses can still show their planned formats. The lesson coordinator registers every artifact with manage_artifact.py before rendering; only ready artifacts appear.

Rules

  • Render only public fields in the initial page. Keep success criteria, tolerances, and private review notes private. The local server may return an authored solution only after a saved attempt and explicit Show answer.
  • The page references learner media files in the workspace; it never copies or downloads them. Missing files get a visible note, never a crash.
  • Re-render whenever the plan, a lesson, or the manifest changes.
  • Math renders with bundled KaTeX, including local fonts. Lesson text must already delimit math as LaTeX ($...$, $$...$$); the renderer preserves delimited LaTeX and equation blocks exactly. Legacy undelimited ASCII text has a limited compatibility converter; never rely on it when authoring. Follow the lesson contract. Body prose is serif. Code blocks use semantic <pre><code> markup and the bundled highlighter; the code remains readable when highlighting cannot run.
  • When reviewing a changed lesson, inspect rendered math in an explanation, an equation block, and an exercise prompt. Switch between Lessons and Exercises, then inspect a worked answer after an authorized save and reveal. Check the DOM for KaTeX output rather than only checking TeX strings in the HTML. A visible math-load warning means the page is not ready to deliver.
  • If enroll or render fails, say plainly what failed and fix it that turn. Never silently skip the page.
  • If the learner did not answer the show question, ask again on the next course turn.
  • The page is for local viewing. Host it only for the enrolled learner.

© madhvantyagi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 34 other files (scripts, references) in skills/course-viewer of madhvantyagi/Gnos.

  • SKILL.md
  • references/example.html
  • references/gnos-logo.png
  • references/vendor/README.md
  • references/vendor/highlight/LICENSE
  • references/vendor/highlight/github-dark.min.css
  • references/vendor/highlight/highlight.min.js
  • references/vendor/katex/LICENSE
  • references/vendor/katex/auto-render.min.js
  • references/vendor/katex/fonts/KaTeX_AMS-Regular.woff2
  • references/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2
  • references/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2
  • references/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2
  • references/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2
  • references/vendor/katex/fonts/KaTeX_Main-Bold.woff2
  • references/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2
  • … and 19 more

Open the folder on GitHubat commit 040fa15

Compare with similar skills

Course Viewer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Course Viewer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Course Viewer this skillmadhvantyagi/Gnos339—~1.8kAutomated safety check: PassMIT
Hermes Agent Skill AuthoringNousResearch/hermes-agent252k—~3.6kAutomated safety check: PassMIT
Configuring Oauth2 Authorization Flowmukul975/Anthropic-Cybersecurity-Skills34k—~1.7kAutomated safety check: PassApache-2.0
Authoring Skillsvercel/next.js143k—~1kAutomated safety check: PassMIT
Abp Authorizationabpframework/abp14k—~1.3kAutomated safety check: PassLGPL-3.0
Lesson Memory Recorderrohitg00/agentmemory29k—~721Automated safety check: PassApache-2.0

Similar skills

  • Hermes Agent Skill Authoring

    NousResearch/hermes-agent

    Author in-repo SKILL.md files: frontmatter and structure. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Configuring Oauth2 Authorization Flow

    mukul975/Anthropic-Cybersecurity-Skills

    Configures secure OAuth 2.0 authorization flows, including Authorization Code with PKCE, Client Credentials, and Device Authorization Grant, covering flow selection, PKCE implementation, token…

    34k GitHub stars~1.7k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Authoring Skills

    vercel/next.js

    Official

    How to create and maintain agent skills in .agents/skills/. An agent skill from vercel/next.js.

    143k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Abp Authorization

    abpframework/abp

    ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.

    14k GitHub stars~1.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Lesson Memory Recorder

    rohitg00/agentmemory

    Distills a user correction or hard-won rule into a confidence-weighted lesson that resurfaces automatically before similar future work.

    29k GitHub stars~721 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Implementing GCP Binary Authorization

    mukul975/Anthropic-Cybersecurity-Skills

    Implements GCP Binary Authorization end to end, including creating KMS-backed attestors, Container Analysis notes, deploy-time policies, and signing image attestations, so that only trusted…

    34k GitHub stars~2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed

More from madhvantyagi/Gnos

All 12 skills in this repo
  • Course Design

    madhvantyagi/Gnos

    Design and revise a course's goal, progression, prerequisites, and sources.

    339 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Khan Academy

    madhvantyagi/Gnos

    Find a Khan Academy video fast and add it only on a strong match.

    339 GitHub stars~814 tokensUpdated today
    Auto-check passed
  • Learner Tracking

    madhvantyagi/Gnos

    Record what the learner does and adapt the course to it in real time.

    339 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Lesson Design

    madhvantyagi/Gnos

    Develop the current topic into a connected lesson. An agent skill from madhvantyagi/Gnos.

    339 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Manim Voice Animation

    madhvantyagi/Gnos

    Make Manim teaching animations with narration and subtitles when motion helps a concept.

    339 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • PDF

    madhvantyagi/Gnos

    Turn lesson content into a PDF handout; render and check it before delivery.

    339 GitHub stars~881 tokensUpdated today
    Auto-check passed

Questions about Course Viewer

What does Course Viewer do?

Show an enrolled course and its lessons. An agent skill from madhvantyagi/Gnos. Course Viewer is an agent skill from madhvantyagi/Gnos. Show an enrolled course and its lessons.

How do I install Course Viewer in Claude Code?

Run `npx skills add madhvantyagi/Gnos --skill course-viewer -a claude-code`. Or copy the skill folder (skills/course-viewer in madhvantyagi/Gnos) into .claude/skills/course-viewer in your project. Claude Code loads it when a task matches its description.

How do I install Course Viewer in Codex?

Run `npx skills add madhvantyagi/Gnos --skill course-viewer -a codex`. Or copy the skill folder (skills/course-viewer in madhvantyagi/Gnos) into .agents/skills/course-viewer in your project. Codex loads it when a task matches its description.

Can I use Course Viewer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add madhvantyagi/Gnos --skill course-viewer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/course-viewer, .gemini/skills/course-viewer, .github/skills/course-viewer and .opencode/skills/course-viewer in your project.

What does Course Viewer need to run?

Going by SKILL.md and its folder, Course Viewer needs JavaScript for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3; Node.js.

Does Course Viewer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Course Viewer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Course Viewer use?

Course Viewer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Course Viewer use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 250k tokens, read only when the agent opens those files.

What are the alternatives to Course Viewer?

Skills that share tags, products or a category with Course Viewer: Hermes Agent Skill Authoring (NousResearch/hermes-agent, 252k stars), Configuring Oauth2 Authorization Flow (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Authoring Skills (vercel/next.js, 143k stars) and Abp Authorization (abpframework/abp, 14k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Course Viewer?

madhvantyagi (a GitHub user) maintains it in madhvantyagi/Gnos, which has 339 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.

Source: madhvantyagi/Gnos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.