@misunders2d/learn-anything

Build adaptive browser learning workspaces for any topic or project

Packages

Package details

skill

Install @misunders2d/learn-anything from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@misunders2d/learn-anything
Package
@misunders2d/learn-anything
Version
0.1.8
Published
Aug 25, 2026
Downloads
848/mo · 848/wk
Author
misunders2d
License
Apache-2.0
Types
skill
Size
4.1 MB
Dependencies
8 dependencies · 0 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Learn Anything

Learn Anything turns a topic, repository, or build goal into a local browser-based learning workspace. Lessons can mix explanation, chat, code, diagrams, exercises, and runnable examples. Progress stays on your machine, and an interrupted session can be resumed later.

The package is built for coding agents rather than tied to one fixed course or interface. It checks the available tools, chooses a compatible setup, and assembles only the pieces needed for the lesson.

Install

Pi

pi install npm:@misunders2d/learn-anything

Oh My Pi

omp install @misunders2d/learn-anything

Both commands install the npm package and register its learn-anything skill. Start a new session after installation if the skill is not visible in the current one.

For direct CLI use:

npm install --global @misunders2d/learn-anything
learn-anything probe

Requires Node.js 20 or newer.

Update

Pi:

pi update npm:@misunders2d/learn-anything

Oh My Pi:

omp install @misunders2d/learn-anything@latest

Global CLI installation:

npm install --global @misunders2d/learn-anything@latest

Start a lesson

Ask your agent to teach a topic or help you build something while learning it. For example:

Teach me Rust ownership by building a small command-line program.
Help me understand this repository, then guide me through adding a feature.
Teach me SQL joins with examples I can run in the browser.

The agent creates a workspace under .learnings/ for project work or ~/learnings/ for a general topic. It launches the browser, keeps lesson state on disk, and resumes the same workspace when you return.

Command line

Check available runtimes and adapters:

learn-anything probe

Create a workspace:

learn-anything create "Rust lifetimes" --root /path/to/project --execution host

The invoking agent selects execution infrastructure for the lesson and machine. host uses installed fixed-command language runners; container uses an existing Docker or Podman runtime when stronger isolation is justified. Missing containers do not block construction. The agent should provision lightweight project-local or user-scope dependencies when needed and ask before any privileged system installation.

Start it:

learn-anything start --session /path/to/project/.learnings/rust-lifetimes --open

Run the built-in smoke check:

learn-anything smoke --session /path/to/project/.learnings/rust-lifetimes

start prints a local URL and a token-bearing launch URL. Open only the launch URL. Use --no-open on headless systems and --no-mentor when testing the server by itself.

After a package update or deliberate adapter change, create may require an explicit migration:

learn-anything create "Rust lifetimes" --root /path/to/project --profile <profile-id> --execution <host|container> --migrate

Migration preserves the transcript, canvas, exercises, and progress, writes a versioned session.json backup, rebuilds the versioned assembly manifest, and marks the composition for revalidation before launch.

What is included

The package ships one complete skill under skills/learn-anything/:

  • SKILL.md — lesson construction and mentoring workflow
  • blocks/ — browser, server, adapter, and execution building blocks
  • profiles/ — tested compositions for supported environments
  • references/ — teaching, protocol, component, and visual guidance
  • scripts/ — capability checks, workspace construction, mentor bridge, and verification
  • bin/ — command-line entry point

Pi reads the package through its pi.skills manifest. Oh My Pi discovers the same conventional skills/ directory.

Safety and privacy

Learning sessions and saved progress stay on the local computer, while mentor prompts are processed by the selected model provider. The browser server accepts requests only from its own origin and protects session routes with a per-session token. It stops when its owning agent exits or after the final browser tab disconnects. Execution is selected for the lesson and verified machine capabilities. Host runners use fixed commands but learner programs retain the current user's filesystem and process permissions. When explicitly selected, the optional Docker or Podman block runs learner code with no network, a read-only root, bounded resources, and only the learning directory writable.

Review package source before installation. Pi and Oh My Pi packages run with the same local access as the agent that loads them.

Current limits

The package includes native Pi, Claude, Codex, and explicit manual-shell adapters. Pi headless mode keeps browser submissions active without requiring a terminal nudge. Other agents integrate through the same mentor HTTP/runtime contract and capability metadata; unsupported environments stop before opening an unstaffed browser. Host and container execution blocks are available, but neither Docker nor Podman is required. Voice runtimes and a native adapter for every other harness are not included yet.

Development

git clone https://github.com/misunders2d/learn-anything.git
cd learn-anything
npm install
npm run build
npm test

Run the local CLI without installing it globally:

node skills/learn-anything/bin/learn-anything.mjs probe
node skills/learn-anything/bin/learn-anything.mjs create "Rust lifetimes" --root /path/to/project

Browser acceptance test:

npm run test:browser

License

Apache-2.0