Build, ship, and iterate from your terminal. Maximo Syntax CLI is a powerful AI-powered command-line interface that brings together advanced LLM integration with a lightning-fast developer experience.
Maximo Syntax CLI — The official command-line interface natively built for Maximo AI models. Optimized for high-fidelity code generation and agentic task orchestration.
Also compatible with any LLM via OpenAI, Gemini, or Ollama endpoints.
npm install -g @maximoai/maximo-syntax-cliUse Bun 1.3.11 or newer for source builds on Windows. Older Bun versions such as 1.3.4 can fail with a large batch of unresolved module errors during bun run build.
# Clone from maximoai
git clone https://github.com/maximoai/maximo-syntax-cli.git
cd maximo-syntax-cli
# Install dependencies
bun install
# Build
bun run build
# Link globally (optional)
npm linkbun run build creates a production bundle suitable for packaging and keeps
auto-updates available by default. Use bun run dev for local development;
that command deliberately creates a development bundle and disables self-update
checks for the source checkout.
After installation, you can invoke the CLI using any of the following commands:
syntaxmaximomaximo-syntaxmaximo-syntax-climaximo
All five commands are equivalent and natively supported.
Interactive sessions use fullscreen alt-screen scroll by default (displayMode: auto), the same approach as Grok Build: an in-app ScrollBox owns the wheel and
keyboard scroll, sticky follow only while you are pinned to the bottom, and
streaming output cannot yank the viewport while you read earlier turns.
- Wheel / trackpad — scroll the conversation; follow pauses automatically.
- PgUp / PgDn — page through the transcript from the prompt.
- End / jump-to-bottom pill — resume follow of new output.
- Wheel past the bottom — also re-enables follow.
Prefer native terminal scrollback instead? Set Display mode to inline in
/config, or export MAXIMO_SYNTAX_NO_FLICKER=0.
The prompt supports terminal-native mouse editing in both inline and fullscreen layouts:
- Click anywhere in the prompt to place the caret, including wrapped and multiline input.
- Drag to select text. Double-click selects a word; triple-click selects the logical line.
- Selected text is copied on mouse-up by default and stays highlighted. The
selection can also be replaced by typing, deleted with Backspace/Delete, or
copied/cut with the usual
Ctrl/Cmd-CandCtrl/Cmd-Xshortcuts. - Click a visible slash-command or file suggestion to accept that row immediately. Keyboard navigation remains available.
# Keep the prompt from enabling mouse reporting.
export MAXIMO_SYNTAX_DISABLE_MOUSE=1
# In fullscreen, keep wheel scrolling but disable prompt click/drag actions.
export MAXIMO_SYNTAX_DISABLE_MOUSE_CLICKS=1
# Keep the terminal's native caret visible for screen readers and magnifiers.
export MAXIMO_SYNTAX_ACCESSIBILITY=1The copyOnSelect setting can be changed from the configuration screen. OSC
52 and the local clipboard utility are used where available, with terminal
mouse tracking restored automatically after fullscreen overlays, resize, or
terminal suspend/resume.
The command palette searches live actions, slash commands, and skills. Open it
with Ctrl+P in most terminals. In VS Code's integrated terminal, where
Ctrl+P belongs to the editor, use the chord Ctrl+X, then P. The active
shortcut is shown contextually in the prompt footer and can be changed under
/config with the terminal shortcut profile.
Prompt editing includes attachment-aware undo and redo. Use Ctrl+_ to undo
and Ctrl+Y to redo. Images and large pasted-text references behave as atomic
chips: navigation snaps to chip boundaries, deleting a selected chip removes
the matching content, and undo/redo restores the text, caret, and attachment
state together.
While prompts are queued, open the interactive queue with Ctrl+Q (Ctrl+X,
then Q in VS Code). The pane supports:
Enterto move an editable queued prompt back into the editor.Nto prioritize it for immediate sending.Dor Delete to remove it.Ctrl+Up/Ctrl+Downto reorder it.- Typing to filter the queue.
Open the detailed transcript with Ctrl+O. Scrollback supports mouse-wheel
and keyboard scrolling, / incremental search, N/Shift+N match navigation,
text selection and copy, and automatic follow while pinned to the bottom.
Manual scrolling pauses follow; returning to the bottom resumes it. Press
Shift+Up or click a message to focus it, then use Up/Down or J/K to move
between turns, Enter to fold or expand supported rows, C to copy, R for
raw view, and Escape to return. Press [ to dump the complete expanded
transcript into native terminal scrollback, or V to open it in $VISUAL or
$EDITOR.
/config also exposes display mode (auto = fullscreen scroll by default;
inline = native terminal scrollback; fullscreen / compact force the
alt-screen layout), UI density, prompt border style, reduced motion, contextual
shortcut hints, and response-completion notifications. Notifications can be
limited to times when the terminal is unfocused.
Maximo Syntax reads the shared SKILL.md format and normalizes skills from
Maximo, Agent Skills, Codex, Claude Code, Gemini CLI/Antigravity, Grok CLI, and
OpenCode layouts. Existing native Maximo roots keep their normal precedence;
provider-qualified aliases (for example claude:review) keep same-named skills
addressable.
Supported project roots are:
.maximo/skills/.agents/skills/.claude/skills/.gemini/skills/.grok/skills/.opencode/skills/
The same provider roots are checked in their documented user locations, such
as ~/.agents/skills/, Codex's ~/.codex/skills/ (or $CODEX_HOME/skills/),
~/.claude/skills/, ~/.gemini/skills/, ~/.grok/skills/,
~/.config/opencode/skills/, and the Antigravity Gemini skill roots.
In the TUI:
- Type
/skill-nameor/skill-name argumentsto invoke a skill directly. - Type
$skill-nameinside a normal prompt to explicitly guide Maximo to load that known skill before handling the rest of the prompt. Unknown$wordsand shell variables such as$HOMEremain ordinary text. - Run
/skillsto open the picker. Select a skill to insert its/command, or select the creator. - Run
/skills createor/skill-creatorto create a reusable skill./create-skilland the legacy/skillifynames remain aliases. - Run
/skills reloadafter external changes./skills info <name>,/skills use <name>,/skills link <path> [--scope user|workspace], and the session-onlyenable/disablehelpers are also available.
Skills use a directory containing SKILL.md, for example:
.agents/skills/release-notes/SKILL.md
The recommended portable frontmatter includes name and description; Maximo
also supports compatible fields such as allowed-tools, when_to_use,
argument-hint, arguments, context, user-invocable, and
disable-model-invocation.
Maximo Syntax CLI supports several ways to sign in. Run the login flow and pick the option that matches your setup:
maximo login| Option | What it is | Notes |
|---|---|---|
| Maximo AI account | First-party Maximo AI subscription/pro API key | Default provider; routes through https://api.maximoai.co/v1. |
| MyTabulon Coding Plan | MyTabulon platform API key (mtb_live_…) |
Sign in via browser OAuth or paste a mtb_live_ key. |
| Cencori | Cencori OpenAI-compatible API key (csk_…) |
Cencori is OpenAI-compatible, so chat and models go through https://api.cencori.com/v1. Paste your csk_ key at the prompt — the key is saved to your global config and used for all API calls. |
| OpenRouter | OpenRouter API key | Uses https://openrouter.ai/api/v1/chat/completions and loads models from https://openrouter.ai/api/v1/models. |
| OpenCode | OpenCode Zen or Go API key | Choose Zen or Go, then use the corresponding Chat Completions endpoint and model catalog from https://opencode.ai/zen/v1 or https://opencode.ai/zen/go/v1. |
| 3rd-party platform | OpenAI, Gemini, Bedrock, Ollama, and more | Set the relevant environment variables and restart. See Alternative Providers. |
To switch providers (e.g. to Cencori) at any time, run maximo login again and choose the provider you want.
Maximo Syntax installs via npm, so updating is just reinstalling the latest published version:
npm install -g @maximoai/maximo-syntax-cliYou can also update right from inside the CLI:
/update/update runs npm install -g @maximoai/maximo-syntax-cli (always pulls the latest dist-tag) and tells you to restart the CLI once it finishes. Native and OS-package-manager installs are left to their own update channels.
Maximo Syntax can run with fewer (or no) permission prompts. There are two different modes:
| Mode | How to enable | Classifier? | Notes |
|---|---|---|---|
| Default (ask) | (default) | No | Prompts for risky tools; read-only work is free |
| Accept edits | Shift+Tab | No | File edits in the project without prompts |
| Plan | /plan or Shift+Tab |
No | Read-only planning until you approve |
| Auto (classifier) | /auto → pick Auto · classifier, or --permission-mode auto |
Yes | Safe tools run; risky ones are classified first. Footer: ◎ auto · classifier on |
| Always-approve (YOLO) | /auto → pick Always-approve, or /yolo, --always-approve, --yolo |
No | Almost no prompts — sandbox/VM recommended. Footer: ⚠ always-approve · no classifier on |
In the TUI, run /auto and choose which version you want (classifier, always-approve, or off). Aliases /yolo and /always-approve open the same picker. The prompt footer and Shift+Tab toast show the active mode; /status lists it too.
- Available when you are logged in via Maximo AI or MyTabulon.
- Uses your currently selected model as the classifier (same login credentials).
- Warning: each classified tool call is an extra API request and consumes additional usage-pool quota beyond the main agent.
- Deny rules and hooks still apply. Prefer a sandbox for long unattended runs.
maximo --permission-mode auto
# or in the TUI:
/automaximo --always-approve
maximo --yolo
# or in the TUI:
/always-approve
/yoloDeny rules and PreToolUse hooks still apply. There is no safety classifier — only use this when you trust the environment.
You can attach images to a prompt by copy-paste or by dragging and dropping a file into the terminal — both work the same way:
- Pasted images are read from the clipboard and attached inline.
- Dragged images are resolved from the dropped file path (including basename-only drops from common folders like
~/Documents,~/Desktop,~/Pictures, and iCloud Drive).
In both cases the image is previewed with a [Image #N] reference before you send, and the original bytes are preserved (no silent resize or recompress). Up to 10 images can be attached per prompt.
Maximo Syntax CLI uses Maximo AI as the default provider. Get your API key from Maximo AI and set the following environment variables:
export MAXIMO_SYNTAX_USE_OPENAI=1
export OPENAI_API_KEY=your-maximo-api-key
export OPENAI_BASE_URL=https://api.maximoai.co/v1
export OPENAI_MODEL=maximo-pandora-3.7-nanoOr create a .env file in your project directory:
MAXIMO_SYNTAX_USE_OPENAI=1
OPENAI_API_KEY=your-maximo-api-key
OPENAI_BASE_URL=https://api.maximoai.co/v1
OPENAI_MODEL=maximo-pandora-3.7-nano
maximoexport MAXIMO_SYNTAX_USE_OPENAI=1
export OPENAI_API_KEY=sk-...
export OPENAI_MODEL=gpt-4oGoogle Gemini (free key at https://aistudio.google.com/apikey)
export MAXIMO_SYNTAX_USE_GEMINI=1
export GEMINI_API_KEY=your-keySee documentation: https://code.maximo.com/docs/en/amazon-bedrock
See documentation: https://code.maximo.com/docs/en/microsoft-foundry
See documentation: https://code.maximo.com/docs/en/google-vertex-ai
If you believe you found a security issue, see SECURITY.md.
Contributions are welcome.
For larger changes, open an issue first so the scope is clear before implementation. Helpful validation commands include:
bun run build
bun run smoke
# focused bun test ... runs for touched areasMaximo Syntax CLI is an independent community project and is not affiliated with, endorsed by, or sponsored by Anthropic.
"Claude" and "Claude Code" are trademarks of Anthropic.
MIT