Manual/Going further
Extensions
An extension is a small package that gives moh a new ability — a command, a panel next to the conversation, a check on what moh does, access to something outside your project. Extensions can make moh more careful; they can never make it less.
Add one
$ moh extension add @scope/name # from npm $ moh extension add github:owner/repo # from a GitHub release $ moh extension list $ moh extension remove <name>
Adding only copies the package — it never runs it and never authorises it. You can also
drop an extension file into ~/.moh/extensions/, or a project can list one in
its moh.json. Inside moh, /extensions shows what is loaded and what
each one asked for.
One consent, named in full
Every extension comes with a manifest: a short list of what it needs. The first time it would load, moh asks you — before running a single line of it:
- Your answer is tied to the exact file. Edit the extension or its manifest and moh asks again — and if the change asks for more, the question shows exactly what was added.
- A project cannot enable anything by itself: a
moh.jsonentry is only a proposal until you say yes on your machine. - Where nobody can answer (scripts, CI), an extension you never approved is simply not loaded.
What an extension can do
- refuse an action, or ask you about it (yes/no only)
- add commands, panels and overlays — drawn by moh itself
- use the specific paths, sites, tools or saved credentials you approved
- add a note to what the AI is told, visibly logged
- grant a permission you did not allow
- read the value of a saved credential
- get anything its manifest didn't declare
- stop a conversation when it breaks — failures are shown and moh carries on
No sandbox
An extension is code running inside moh, with your user's access to the computer. The consent question exists for this reason: approve extensions you trust, as you would any program you install.
Saved credentials for extensions are managed with moh secret; they live in
your system's keychain where available.
Written for moh 0.61. Inside moh, ctrl+h opens the built-in manual for your exact version.
