Skip to content

ryotarai/oriel

Repository files navigation

Oriel

A rich web UI for Claude Code. Run multiple Claude sessions side by side, review diffs and commits in real time, browse your project files, and pick up right where you left off -- all from a single browser tab.

Highlights

  • Live diff viewer -- See every file change as Claude works, with syntax highlighting and line-by-line references
  • Parallel sessions -- Run multiple Claude Code panes side by side, each with its own terminal and working directory
  • Reply suggestions -- One-click follow-up suggestions appear automatically after each response
  • Session resume -- Pick up any previous conversation by typing /resume; layout and context are fully restored
  • Readable conversation -- Markdown rendering, Mermaid diagrams, inline agent results, syntax highlighting, and clickable file paths
  • File explorer & commit history -- Browse code and review git commits without leaving the browser
  • Web editor integration -- Edit files in a browser-based textarea when Claude invokes $EDITOR
  • Persistent workspace -- Tab layout, pane sizes, and sessions survive browser closes and server restarts

Quick Start

Install

Download a pre-built binary from the Releases page and place it somewhere in your PATH.

Or install with Homebrew:

brew install ryotarai/tap/oriel

Or install with mise:

mise use -g github:ryotarai/oriel

To build from source instead:

git clone https://github.com/ryotarai/oriel.git
cd oriel
make build        # requires Go 1.26+ and Node.js 18+
# produces ./bin/oriel

Prerequisite: Claude Code CLI must be installed and available as claude in your PATH.

Supported platforms: macOS (Apple Silicon, Intel), Linux (x86_64, ARM64)

Run

cd /path/to/your/project
oriel

The server starts, prints a URL with an auth token, and opens your browser automatically.


Features

Conversation View

Renders Claude's responses with full markdown, syntax-highlighted code blocks, Mermaid diagrams, expandable tool use/result details, and clickable file path links. Agent tool results are rendered as full markdown instead of collapsed blocks, so you can read sub-agent output inline. Use Cmd/Ctrl + F to search within the conversation. Select any text and press r to insert it as a quoted reply in the terminal. Copy buttons on messages and code blocks let you grab content quickly. A floating "New Messages" indicator appears when you're scrolled up and new messages arrive.

Reply Suggestions

After Claude finishes responding, Oriel automatically generates a handful of suggested follow-up messages. Click any suggestion to send it instantly -- no typing required. Great for common next steps like requesting tests, commits, or refinements.

Tabbed Pane Views

Each pane has four switchable tabs -- Conversation, Diff, Files, and Commits -- so you can jump between Claude's output, file changes, the project tree, and git history without losing your place. Scroll positions are preserved across tab switches.

Diff Viewer

Shows all file changes made during the session with per-file unified diffs and syntax highlighting. The Diff tab badge shows the number of changed files at a glance. Hover over any line to send a reference (@path:line) directly to Claude.

File Explorer

Browse the working directory tree and view file contents with syntax highlighting. Markdown files can be toggled between raw source and rendered preview. A "Changed Only" filter lets you narrow the tree to modified files. Like the diff viewer, every line has a one-click button to ask Claude about it.

Commits

View recent git commits with full messages and diffs. Quickly review what Claude (or you) committed during the session.

Multi-Tab, Multi-Pane Layout

Organize your work into tabs, each containing one or more Claude Code panes. Drag dividers to resize panes, drag tabs to reorder them, and double-click a tab to rename it. Each pane runs its own independent Claude session with its own working directory. The active tab is persisted in the URL hash so refreshing preserves your position.

Session Resume

Type /resume in the terminal to pick up a previous conversation. Oriel restores the terminal output, conversation history, and session context so you can continue exactly where you left off.

Persistent Workspace

Your tab layout, pane sizes, working directories, and session associations are saved to a local SQLite database. Close the browser, restart the server -- everything is still there when you come back.

Working Directory Per Pane

Each pane can target a different project directory. Click the folder icon in the toolbar to change it. Oriel also auto-detects when Claude enters a git worktree and updates the diff/files/commits views accordingly.

Web Editor Integration

When Claude invokes $EDITOR (e.g., for interactive file editing), Oriel opens a browser-based textarea editor. Edit the content in the browser, submit, and the result is returned to Claude -- no terminal-based editor required.

Keyboard Shortcuts

Terminal Input

Shortcut Action
Enter Newline (multiline input)
Cmd/Ctrl + Enter Submit to Claude
Ctrl + G Open web textarea editor (pre-populated with current input)
r (with text selected) Quote-reply selected text in the terminal

Enter/Cmd+Enter behavior can be swapped in Settings.

Navigation

Shortcut Action
Cmd/Ctrl + Arrow Left/Right Move focus between panes
Cmd/Ctrl + 1-9 Focus pane by number
Shift + Cmd/Ctrl + 1-9 Switch to tab by number

Conversation

Shortcut Action
Cmd/Ctrl + F Search in conversation
Enter (in search) Next search result
Shift + Enter (in search) Previous search result
Escape (in search) Close search

CLI Options

Flag Default Description
-listen-addr localhost:9111 Address and port to listen on
-command claude CLI command to run in the terminal
-no-open false Don't auto-open the browser on startup
-state-db ~/.config/oriel/state.sqlite3 Path to the SQLite state database
-log-level info Log verbosity: debug, info, warn, error

Environment Variables

Variable Default Description
ORIEL_CONFIG_DIR ~/.config/oriel Override the configuration directory (config.json, state.sqlite3)
ORIEL_LOCAL_DIR ~/.local/oriel Override the local data directory (debug.log, images/)
# Listen on a different port
oriel -listen-addr localhost:3000

# Use a specific Claude Code binary
oriel -command /usr/local/bin/claude

# Don't auto-open browser (useful for remote/SSH)
oriel -no-open

Security

The server generates a random authentication token at startup. The token is included in the URL printed to the terminal and stored as an HTTP-only cookie after the first visit. Only users with the token can access the UI.

By default, the server listens on localhost only. To expose it on a network interface, change -listen-addr accordingly and be aware of the security implications.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors