Pebrel Titanium icon

Pebrel

A GPU-accelerated terminal, SSH workspace, and home for your AI CLI sessions.

Built with Rust and GPUI for Windows, macOS, and Linux.
Split terminals · SSH & SFTP · Claude Code & Codex workflows · Native document reader

Kuddev/pebrel | Trendshift

Stars AtomGitStars XERJ Corpus Hub contributor Forks Last commit Discord linux.do

English · 简体中文

---

Terminal tabs in Pebrel

Claude Code running in Pebrel

OpenCode, Claude Code, and Codex in split panes

## 💖 Sponsors
AIAPI
AIAPI

Special thanks to AIAPI for sponsoring this project!

AIAPI is dedicated to building the most stable AI model relay on the web, providing a unified API for solo developers, tech teams, and enterprises. We deliver full-power, unthrottled Claude and GPT models—zero lobotomization, zero dilution, and 100% pure native performance. Backed by dynamic multi-route scheduling for high availability, complete transparency in latency and billing, and top-tier after-sales support that always has your back, AIAPI cuts API costs by 40%–98% compared to official rates.

Visit AIAPI

Sidrune AI
Sidrune AI

One entry point for accessing and managing the world's leading AI models

Thanks to Sidrune AI for sponsoring this project! Sidrune AI serves individual developers, technical teams and enterprises with a unified API for accessing and managing the world's leading AI models. Dynamic multi-route scheduling improves availability, and model performance, response time and cost stay transparent. Depending on the model and route, API calls can cost 40%–98% less than official or benchmark prices.

Visit and sign up now to receive $3 in API credit.

For business cooperation or sponsorship, contact: [fickleheartedkeys@163.com](mailto:fickleheartedkeys@163.com)

Pebrel WeChat Community

QR code for the Pebrel WeChat group, valid before November 4, 2026

Scan with WeChat to join. Valid before November 4, 2026. Click the image to view full size.

## One Workspace Pebrel (formerly Nebula) brings local shells, remote hosts, files, and AI command-line tools into a native desktop workspace. Arrange terminals in tabs and splits, follow each agent's activity, and read its output without leaving the application. ### Terminals and Sessions - Sidebar or top tabs, draggable split panes, and per-pane working directories. - Saved workspace layouts and optional AI conversation restoration. On WSL and Linux, Codex session metadata can supply an ID when its hook has not reported one. - Native Windows Codex identity refreshes share a background helper with startup cursor feedback disabled. Each refresh reads current metadata and remains bounded; a stalled helper is stopped before a later refresh creates its replacement. - On Windows, optional background residency keeps running sessions alive when you close the window. Restoring a conversation after the process exits is a separate feature and requires a supported CLI and a usable session identity. - Context-aware and history completions, configurable keybindings, and integrated shell prompts. - Saved-command management supports checkbox selection and one confirmation for a batch, replacing repeated single-command deletion. Selection mode never runs a command; changing the search or folder clears the selection. **Select results** selects commands in the current filtered list, including rows below the viewport. **Manage → Delete all commands** clears custom commands and all current built-in recipes across platforms, regardless of the current search or folder; folders stay. Clearing built-ins also includes recipes moved to other folders. Empty built-in folders disappear, and **Manage → Restore built-in commands** restores deleted recipes to their default folder. Custom deletions are not undoable here. Deleting a custom folder requires confirmation and keeps its commands in Ungrouped. Batch changes reuse the existing locked, refreshed, atomic store transaction; the saved file format is unchanged and stale selections preserve unrelated edits. - Remapping or disabling terminal shortcuts preserves text fields' native paste keys. Restoring defaults updates existing windows without restarting. Runtime overrides replace their previous rules, avoiding the stale disabled bindings from the append-only path; the saved configuration format is unchanged. See the [shortcut ownership decision](architecture/notes/nebula_app/gpui_shell/workspace/2026-10-07-keyboard-override-sources.md). - Local Windows PowerShell prompts can keep multiline clipboard paste in PSReadLine for review: Enter submits it, and one Undo removes the whole paste. This requires active shell integration and no user binding on its managed paste shortcut. PSReadLine normalizes CRLF and expands tabs to four spaces; other editors retain their negotiated paste or existing confirmation behavior. See the [clipboard paste contract](architecture/notes/nebula_app/gpui_shell/terminal/view/2026-10-23-powershell-clipboard-paste.md). ### Intelligent Completion Get suggestions from your current Git repository, project scripts, SSH config, and filesystem—even when you have never run the command before. On Windows, Pebrel also completes registered WSL distributions. These candidates come from Pebrel's own completion engine, without a shell completion plugin or an AI request. Five commands in a real Windows/PowerShell terminal: Git branches, npm scripts, SSH aliases, WSL distributions, and a quoted filename with `cat`. Typed one character at a time with the built-in Powerline prompt.

First-use completion for Git, npm, SSH, WSL, and cat in Pebrel

Choose **Inline** (Tab accepts the suggestion), **List** (Tab accepts the selected candidate), or **Hybrid** (→ accepts the inline suggestion; Tab opens the list) in Settings.
How history completion differs History completion recalls a command you have already executed. Here, `echo dep` recalls `echo deployment finished` after its first run. The five examples above discover candidates from the current environment without matching prior commands.

Recalling a previously executed command with history completion

### SSH and Files - Search SSH hosts by name, address, group, tags or notes in the host library, launcher, command palette and Quick Jump. Space-separated keywords must all match; searches are case-insensitive. The launchers now use the same metadata as the host library. - Saved hosts, SSH config aliases, proxy and jump-host options, private-key and keyboard-interactive authentication, and host-key verification. - SFTP browsing, uploads and downloads, folder transfers, progress, and cancellation. - Local file browsing and Git actions alongside your terminals. - Duplicated WSL and SSH tabs retain their known working directory.

Native SSH session

### AI CLI Workflows - Claude Code, Codex, and other recognized CLIs have their own icons and activity states. Supported hook events provide more precise progress and attention signals. - Notifications follow their source pane; clicking one returns you to that terminal. - Captured Claude Code and Codex answers open in a reader with Markdown, formulas, source text, and local image previews. Reader controls and notices follow the selected language; Copy source preserves the complete original answer. See [reader language behavior](docs/answer-reader-language.md). - Clipboard images are saved as PNG files and their paths inserted into local, WSL, or SSH sessions. Inline terminal images require the CLI to emit the supported OSC 1337 protocol; image attachment previews depend on the CLI itself.

AI activity sidebar

### A Native, Configurable Interface - GPU-accelerated GPUI interface, light and dark themes, backgrounds, and opacity controls. - Application icon palettes and eleven UI language choices with English fallback for untranslated text. - Workspace dialogs, command feedback, Git/SVN controls and default notifications follow the selected language. Switching languages preserves command search text and selection. See [internationalization](docs/internationalization.md). - Searchable settings, a command palette, and Lua configuration with validation and live reload. Existing TOML configuration remains supported. - Markdown document tabs and native mathematical typesetting without a WebView.

Native formula rendering

Application themes

## Download Choose a package from the **[latest release](https://github.com/Kuddev/pebrel/releases/latest)**. | System | Architecture | Packages | | --- | --- | --- | | Windows 10 1809+ / 11 | x64 | Installer `.exe`, portable `.zip` | | Linux Preview, glibc 2.35+ | x64 | `.AppImage`, `.deb`, portable `.tar.gz` | | macOS Preview, deployment target 14+ | Apple Silicon / arm64 | `.dmg` | | macOS Preview, deployment target 14+ | Intel / x64 | `.dmg` | Package names follow `Pebrel-v--`. Windows offers stable installers ending in `-setup.exe` and portable ZIPs. Linux and macOS are Preview builds, marked `-preview` before the extension. A legacy-named Windows installer is also supplied for older automatic-update clients. On Windows, run the installer or extract the ZIP and launch `pebrel.exe`, keeping the bundled directories together. On Linux, install the DEB or make the AppImage executable. On macOS, open the matching DMG and drag Pebrel into Applications. Ad-hoc-signed macOS builds may require **Open Anyway** in **System Settings > Privacy & Security** on first launch. Native macOS CI runs on macOS 15; the deployment target alone does not establish validation on every older OS version. Pebrel 2.1 connects native tray actions, quick-terminal shortcuts, login startup, and local AI-hook setup on Windows, macOS, and Linux. Linux tray integration uses a status notifier, and Wayland shortcuts use the desktop portal. Windows and macOS provide native update installation; Linux upgrades use its package manager or a new package. See [installation details](INSTALL.md) for platform requirements and upgrading an existing Nebula installation. ## Self-hosted relay On your phone, save an SSH host with password or private-key authentication, then select that host in relay setup. For key authentication, the credential field is the private-key passphrase; leave it empty for an unencrypted key. It is not a relay password. After installation, select the SSH host under desktop **Settings → Phone connection → Relay**, then generate the phone pairing QR code. See [offline relay installation](mobile/relay-native/INSTALL.md) for server requirements, verification and management. The original v2.1.1 Release assets did not include an offline relay kit. A source checkout containing that installer can use `mobile/tools/package_manual_relay.py` to generate a two-architecture Linux kit and SHA256 sidecar from a verified APK. The tool does not download executables or publish or replace Release assets. Older APKs also need Cargo dependency notices collected from their matching source; the installation guide includes those commands. ## Configure ```sh pebrel config init --language en-US pebrel config check ``` The generated Lua configuration uses `require 'pebrel'` and `pebrel.config_builder()`. Invalid reloads retain the last valid configuration. See the [Lua configuration guide](docs/lua-configuration.md) for settings and examples. In **Settings → Terminal → Alerts**, **Notification duration** selects **Use defaults**, 5, 10, 30, or 90 seconds, or **Until dismissed**. The default preserves existing lifetimes: short toasts last 5 seconds, message banners 90 seconds, and update notices remain until dismissed. The saved preference applies to all newly shown or refreshed in-app cards, independently of the AI-toast visibility switch. Only the latest three cards are retained; newer cards replace older ones without performing their actions, including in persistent mode. Hiding a card never approves or rejects a request or changes task state; requests remain available in their terminals and updates in Settings. System notifications are unchanged. The persisted key is `notification_duration`, with values `default`, `5`, `10`, `30`, `90`, or `persistent`. See the [notification duration menu](docs/screenshots/notification-duration.png). ## Build With the pinned Rust toolchain and the platform dependencies installed: ```sh cargo build --release --locked -p nebula --bin pebrel --features gpui-shell ``` The internal Cargo package is still named `nebula`; the application and command are `pebrel`. GPUI is the product interface. The older renderer is available only through the explicit `legacy-shell` feature. ## Contact Discord: [discord.gg/VFn4rcxmhn](https://discord.gg/VFn4rcxmhn) ## Acknowledgements Pebrel includes third-party terminal, interface and font components. Their provenance, copyright and license notices are preserved in [THIRD-PARTY-NOTICES](THIRD-PARTY-NOTICES) and [licenses/](licenses/). ## Community - **[linux.do](https://linux.do)** - A thriving developer community. ## ⭐ Star History Star History Chart