no-vibe
Learning mode for AI coding assistants. The agent teaches and shows code in chat, and you type every line yourself.
Package details
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
- If you are in a project, the agent reads it first, so the lesson fits your stack and never breaks what already works.
- It finds your level with a few multiple-choice questions.
- It agrees a one-sentence goal with you.
- 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.
- 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.
- Each chapter ends with a check, such as finding a bug or predicting output, and the agent re-explains what you miss.
- 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.