Interactive mode

The IsonForge REPL is the default surface. Just run isonforge and start typing.

Input editing

Key Action
Enter Submit prompt
Alt+Enter Insert newline (multi-line input)
Shift+Enter Insert newline (terminals that distinguish - many don't; prefer Alt+Enter)
Backspace Delete previous character
Left / Right Move cursor
Up / Down Navigate prompt history (within session)
Ctrl+A Move cursor to start of current line
Ctrl+E Move cursor to end of current line

The prompt persists per-line history within the session. Up arrow walks oldest-first into history; saves your current draft so Down arrow can restore it.

Mode and control

Key Action
Shift+Tab Cycle permission mode: default -> acceptEdits -> plan -> auto -> bypassPermissions -> default
Ctrl+C Abort stream (if streaming) or exit at idle
ESC Abort stream, or deny a pending permission prompt

The permission mode shows in the status line. Shift+Tab is fast - tap through modes mid-task to relax or tighten what the agent is allowed to do.

Inline shortcuts

These work at the prompt and are processed client-side before the agent runs.

!command - run bash directly

> !ls -la

Executes locally. Output streams to your terminal. The agent does not see it - this is for when you want to do something yourself without invoking the model.

@path/to/file - inject file content

> what's wrong with this function? @src/auth.py

IsonForge expands @src/auth.py to the file's content inline before sending to the agent. Files >100KB are skipped with a warning. Multiple @ references work in one prompt.

#note - append to global memory

> #the deploy script needs `--env=staging` flag

Saves the note to ~/.isonforge/global-memory.md with a timestamp + project name. Cross-session, cross-project. See Memory.

Slash commands

Type / to autocomplete. See Slash commands for the full list. Highlights:

Streaming UX

While the agent thinks, you'll see:

Permission prompts appear inline when the agent calls a tool that requires approval. Pick one with arrow keys + Enter:

For dangerous bash commands, "always" is removed and No is the default.

Multi-line prompts

For longer prompts, use Alt+Enter to insert newlines. Each line gets a continuation prefix (...). Plain Enter submits. Useful for pasting code snippets, error messages, or specs:

> fix this:

  TypeError: cannot read property 'id' of undefined
    at User.findById (auth/user.js:42:15)
    at /api/users/me (routes/users.js:18:10)

  the error fires on first request after restart, then never again

Resume + history across sessions

Session files live at ~/.isonforge/sessions/<id>.json (mode 0600).

Title bar / status

The terminal title shows: isonforge - <project> - <model>. The status line at the bottom of the REPL shows the current permission mode, turn count, and token usage.

Exit cleanly

Ctrl+C once aborts a stream. Ctrl+C again (or while idle) exits. exit or quit also exit. Background agents and worktrees persist - your work isn't lost.