Getting Started
Install Elyra, configure a provider, and run your first session in under two minutes.
Installation
Elyra is distributed as an npm package. Install it globally:
npm install -g @elyracode/coding-agent
Then start Elyra in whatever project directory you want it to work on:
cd /path/to/project
elyra
Authentication
Elyra supports subscription-based providers via OAuth and API-key providers via environment variables or an auth file.
Option 1: Subscription Login
Start Elyra and run the /login command, then
select a provider. Built-in subscription logins include:
- Claude Pro / Max
- ChatGPT Plus / Pro (Codex)
- GitHub Copilot
Option 2: API Key
Set an API key before launching Elyra:
export ANTHROPIC_API_KEY=sk-ant-...
elyra
You can also run /login and select an API-key
provider to store the key in
~/.elyra/agent/auth.json.
First Session
Once Elyra starts, type a request and press Enter:
Summarize this repository and tell me how to run its checks.
By default, Elyra gives the model four tools:
| Tool | Description |
|---|---|
read |
Read files |
write |
Create or overwrite files |
edit |
Patch files |
bash |
Run shell commands |
Additional read-only tools (grep,
find, ls) are available through
tool options. Elyra runs in your current working directory
and can modify files there. Use git or another checkpointing
workflow for easy rollback.
CLI Flags
elyra [options] [@files...] [messages...]
Model Options
| Flag | Description |
|---|---|
--provider <name> |
Provider name: anthropic,
openai, google, etc.
|
--model <pattern> |
Model pattern or ID. Supports
provider/id and
:thinking suffix.
|
--api-key <key> |
API key, overriding environment variables. |
--thinking <level> |
off, minimal,
low, medium,
high, xhigh
|
--models <patterns> |
Comma-separated patterns for Ctrl+P cycling. |
--list-models [search] |
List available models and exit. |
Session Options
| Flag | Description |
|---|---|
-c, --continue |
Continue the most recent session. |
-r, --resume |
Browse and select a session. |
--session <path|id> |
Open a specific session file or partial UUID. |
--fork <path|id> |
Fork a session into a new session file. |
--no-session |
Ephemeral mode; do not save. |
Mode Options
| Flag | Description |
|---|---|
| (default) | Interactive mode |
-p, --print |
Print response and exit. |
--mode json |
Output all events as JSON lines. |
--mode rpc |
RPC mode over stdin/stdout. |
--export <in> [out] |
Export a session to HTML. |
Tool Options
| Flag | Description |
|---|---|
--tools <list>,
-t
|
Allowlist specific tools. |
--no-builtin-tools,
-nbt
|
Disable built-in tools, keep extension/custom. |
--no-tools, -nt |
Disable all tools. |
Resource Options
| Flag | Description |
|---|---|
-e <source> |
Load an extension from path, npm, or git. Repeatable. |
--skill <path> |
Load a skill. Repeatable. |
--no-extensions |
Disable extension discovery. |
--no-skills |
Disable skill discovery. |
--no-context-files,
-nc
|
Disable AGENTS.md /
CLAUDE.md discovery.
|
--system-prompt <text> |
Replace default system prompt. |
--append-system-prompt <text>
|
Append to system prompt. |
File Arguments
Prefix files with @ to include them in the
message:
elyra @README.md "Summarize this"
elyra @src/app.ts @src/app.test.ts "Review these together"
elyra -p @screenshot.png "What's in this image?"
Examples
# Interactive with initial prompt
elyra "List all .ts files in src/"
# Non-interactive
elyra -p "Summarize this codebase"
# Pipe stdin
cat README.md | elyra -p "Summarize this text"
# Different model
elyra --provider openai --model gpt-4o "Help me refactor"
# Model with provider prefix
elyra --model openai/gpt-4o "Help me refactor"
# Model with thinking level shorthand
elyra --model sonnet:high "Solve this complex problem"
# Read-only mode
elyra --tools read,grep,find,ls -p "Review the code"
Interactive Mode
The interactive interface has four main areas:
- Startup header — shortcuts, loaded context files, prompt templates, skills, and extensions.
- Messages — user messages, assistant responses, tool calls, tool results, notifications, and errors.
- Editor — where you type. Border color indicates the current thinking level.
- Footer — working directory, session name, token/cache usage, cost, context usage, and model.
Editor Features
| Feature | How |
|---|---|
| File reference |
Type @ to fuzzy-search project
files.
|
| Path completion | Press Tab to complete paths. |
| Multi-line input | Shift+Enter (Ctrl+Enter on Windows Terminal). |
| Images | Paste with Ctrl+V (Alt+V on Windows) or drag into terminal. |
| Shell command |
!command runs and sends output to
the model.
|
| Hidden shell command |
!!command runs without sending
output to the model.
|
| External editor |
Ctrl+G opens $VISUAL or
$EDITOR.
|
Message Queue
You can submit messages while the agent is still working:
- Enter — queues a steering message, delivered after the current tool calls finish.
- Alt+Enter — queues a follow-up, delivered after all agent work finishes.
- Escape — aborts and restores queued messages to the editor.
- Alt+Up — retrieves queued messages back to the editor.
Keybindings
All keyboard shortcuts can be customized via
~/.elyra/agent/keybindings.json. Run
/reload to apply changes without restarting.
Run /hotkeys to view all active bindings.
Application
| Key | Action |
|---|---|
Escape |
Cancel / abort current operation |
Ctrl+C |
Clear editor |
Ctrl+D |
Exit (when editor is empty) |
Ctrl+Z |
Suspend to background |
Ctrl+G |
Open in external editor |
Ctrl+V |
Paste image from clipboard |
Models and Thinking
| Key | Action |
|---|---|
Ctrl+L |
Open model selector |
Ctrl+P |
Cycle to next model |
Shift+Ctrl+P |
Cycle to previous model |
Shift+Tab |
Cycle thinking level |
Ctrl+T |
Collapse/expand thinking blocks |
Display
| Key | Action |
|---|---|
Ctrl+O |
Collapse/expand tool output |
Alt+Enter |
Queue follow-up message |
Alt+Up |
Restore queued messages to editor |
Editor Movement
| Key | Action |
|---|---|
Ctrl+A / Home |
Move to line start |
Ctrl+E / End |
Move to line end |
Ctrl+B / Left |
Move cursor left |
Ctrl+F / Right |
Move cursor right |
Alt+B / Alt+Left |
Move word left |
Alt+F / Alt+Right |
Move word right |
Ctrl+W |
Delete word backward |
Ctrl+U |
Delete to line start |
Ctrl+K |
Delete to line end |
Ctrl+Y |
Yank (paste deleted text) |
Custom Configuration
Create ~/.elyra/agent/keybindings.json:
{
"tui.editor.cursorUp": ["up", "ctrl+p"],
"tui.editor.cursorDown": ["down", "ctrl+n"],
"tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}
Slash Commands
Type / in the editor to open command
completion.
| Command | Description |
|---|---|
/login, /logout |
Manage OAuth or API-key credentials. |
/model |
Switch models. |
/settings |
Thinking level, theme, message delivery, transport. |
/resume |
Pick from previous sessions. |
/new |
Start a new session. |
/name <name> |
Set session display name. |
/session |
Show session file, ID, messages, tokens, and cost. |
/tree |
Jump to any point in the session and continue from there. |
/fork |
Create a new session from a previous user message. |
/clone |
Duplicate the current active branch into a new session. |
/compact [prompt] |
Manually compact context. |
/copy |
Copy last assistant message to clipboard. |
/export [file] |
Export session to HTML. |
/share |
Upload as private GitHub gist with shareable link. |
/reload |
Reload keybindings, extensions, skills, prompts, and context files. |
/hotkeys |
Show all keyboard shortcuts. |
/quit |
Quit Elyra. |
Sessions
Sessions are saved automatically to
~/.elyra/agent/sessions/, organized by working
directory.
elyra -c # Continue most recent session
elyra -r # Browse and select a session
elyra --no-session # Ephemeral mode; do not save
elyra --session <path|id> # Use a specific session file or session ID
elyra --fork <path|id> # Fork a session into a new session file
Inside Elyra, use /session, /tree,
/fork, /clone, and
/compact to manage sessions.
Context Files
Elyra loads context files at startup for project-specific instructions.
Add an AGENTS.md file to your project root:
# Project Instructions
- Run `npm run check` after code changes.
- Do not run production migrations locally.
- Keep responses concise.
Elyra loads:
-
~/.elyra/agent/AGENTS.mdfor global instructions. -
AGENTS.mdorCLAUDE.mdfrom parent directories and the current directory.
Run /reload after changing context files.
Disable loading with --no-context-files or
-nc.
System Prompt Files
Replace the default system prompt with:
.elyra/SYSTEM.mdfor a project.~/.elyra/agent/SYSTEM.mdglobally.
Append to the default prompt without replacing it with
APPEND_SYSTEM.md in either location.
Non-interactive Mode
For one-shot prompts:
elyra -p "Summarize this codebase"
cat README.md | elyra -p "Summarize this text"
elyra -p @screenshot.png "What's in this image?"
Use --mode json for JSON event output or
--mode rpc for process integration.
Environment Variables
| Variable | Description |
|---|---|
ELYRA_CODING_AGENT_DIR |
Override config directory (default:
~/.elyra/agent).
|
ELYRA_CODING_AGENT_SESSION_DIR |
Override session storage directory. |
ELYRA_PACKAGE_DIR |
Override package directory. |
ELYRA_OFFLINE |
Disable startup network operations. |
ELYRA_SKIP_VERSION_CHECK |
Skip version update check at startup. |
ELYRA_TELEMETRY |
Override telemetry:
1/true/yes
or
0/false/no.
|
ELYRA_CACHE_RETENTION |
Set to long for extended prompt
cache.
|
VISUAL, EDITOR |
External editor for Ctrl+G. |