Manual/Everyday work
Files, images and the shell
Point moh at exactly what you mean: attach a file, a folder or a picture to your message with @, or run a command of your own with ! and let moh see the result.
Attach files and folders with @
Type @ in your message and a small search box appears. Start typing a name — the letters don't need to be next to each other — pick the file and press enter.
- A file travels with its content; a folder travels as a list of what is inside.
- Drag and drop works too: pasting a file path into the message turns it into a mention.
- Mentions follow your permission rules. A file that is missing, blocked or too large produces a visible warning instead of silently disappearing — you always know what the AI actually received.
Images
Mention a picture the same way — a screenshot of a bug, a mock-up of a page. If the model you are using can see images, moh passes it along. If it can't, moh keeps a text note and tells you why, rather than quietly dropping it.
Terminals that can draw pictures (such as iTerm2, kitty, Ghostty or WezTerm) show a small preview right in the conversation; everywhere else you get a readable placeholder. You can turn previews off in the settings.
Run your own commands with !
Sometimes you just want to run something yourself — check the status of your files, run the tests — without phrasing it as a request and waiting for moh to decide. Start your message with !:
| You type | What happens |
|---|---|
!git status | Runs the command and shows the output. It is kept in the conversation, so moh can use it on its next turn if it is relevant. |
!!npm test | Runs the command and, when it finishes, sends the output straight to moh — "here, look at this". |
\!hello | A normal message that happens to start with !; the backslash is removed. |
Same gate, same record
A ! command goes through the same permission rules as moh's own commands —
if shell commands are denied, so is this. Because you typed it yourself, the question
is just yes or no, and it never creates an "always" rule. It waits until moh has
finished its current turn, stops after 120 seconds, and secrets in its output are
masked before anything is saved.
Written for moh 0.61. Inside moh, ctrl+h opens the built-in manual for your exact version.
