no-vibe

Learning mode for AI coding assistants. The agent teaches and shows code in chat, and you type every line yourself.

Packages

Package details

extensionskillprompt

Install no-vibe from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:no-vibe
Package
no-vibe
Version
3.6.0
Published
Nov 3, 2026
Downloads
462/mo · 438/wk
Author
rizukirr
License
MIT
Types
extension, skill, prompt
Size
79.4 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ],
  "prompts": [
    "./.pi-plugin/prompts"
  ],
  "extensions": [
    "./.pi-plugin/extensions"
  ]
}

Security note

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

README

no-vibe

Turn your AI coding agent into a tutor. It teaches you, learns your level and adapts to you.

Works with Claude Code, Codex, opencode, Pi and Antigravity.

A lesson

/no-vibe i wanna learn about matrix multiplication using assembly
  1. If you are in a project, the agent reads it first, so the lesson fits your stack and never breaks what already works.
  2. It finds your level with a few multiple-choice questions.
  3. It agrees a one-sentence goal with you.
  4. It plans chapters you approve by working backward from your goal to what you already know, each marked required or optional and building on the last.
  5. Each chapter is taught one section at a time: why it is needed, a structured explanation with visuals that show how to think about it, then at least 3 exercises with the full code shown for you to type and run.
  6. Each chapter ends with a check, such as finding a bug or predicting output, and the agent re-explains what you miss.
  7. For a goal in your project, the last chapters guide you to type the real feature into your own code.

Progress is saved in .no-vibe/, so /no-vibe on picks up where you left off.

Install

Claude Code, then restart it:

/plugin marketplace add rizukirr/no-vibe
/plugin install no-vibe@no-vibe

Codex, which asks you to trust the plugin hooks on first use (see INSTALL.codex.md):

codex plugin marketplace add rizukirr/no-vibe
codex plugin add no-vibe --marketplace no-vibe

Pi (see INSTALL.pi.md):

pi install npm:no-vibe

Antigravity:

agy plugin install https://github.com/rizukirr/no-vibe

opencode v2, with bash on PATH: add the plugin to opencode.json, then run opencode reload (see .opencode/INSTALL.md):

{
  "plugin": ["no-vibe@git+https://github.com/rizukirr/no-vibe.git"]
}

Commands

Codex uses $ instead of /.

Command Effect
/no-vibe [on|off|<topic>] Learning mode. Use ONLY when .no-vibe/active exists at the project root or the user invoked /no-vibe. The agent teaches in chat and never writes project files. Every reply starts with the header [no-vibe] Step: <context|level|goal|syllabus|learn|exercise|check> · Chapter: <n/total|-> · Section: <k|-> · Exercise: <k|->.
/no-vibe-btw <task> One-shot escape hatch to temporarily disable no-vibe write guard for a single scoped task, then restore the marker.

The write guard

While no-vibe is on, a hook refuses file writes and shell writes outside .no-vibe/ (shell commands may also write to /tmp). It catches an agent that slips, but it is not a sandbox: some shell forms get past it, such as a variable inside a path or a build tool that writes files itself. no-vibe relies on the agent following the skill, and the guard catches it when it does not.

License

MIT. Issues and PRs welcome at github.com/rizukirr/no-vibe/issues.