Skip to content
Godot Frontend

gpty — Godot Project

Running

# Build the Rust extension first
cd .. && cargo build -p gpty-gdext

# Launch Godot (editor)
cd godot && godot -e

# Press F5 to run the application

The workspace starts an IPC server on startup ($XDG_RUNTIME_DIR/gpty.sock on Linux) that accepts JSON-RPC 2.0 commands. Use the gpty CLI to control it from the terminal:

Structure

godot/
├── project.godot            # Godot 4.7 project config
├── gpty.gdextension      # GDExtension library config
    ├── concepts.default.json    # Shipped default concepts
    ├── profiles.default.json    # Shipped recommended layouts (Agent Workspace)
    ├── fonts/                   # Bundled fonts (DejaVu Sans Mono + Phosphor icons)
    │   ├── DejaVuSansMono.ttf
    │   ├── DejaVuSansMono-Bold.ttf
    │   ├── DejaVuSansMono-Oblique.ttf
    │   └── Phosphor-Regular.ttf
    └── scenes/
        ├── main.tscn            # Root scene (Workspace)
        ├── autoloads/           # 9 singleton managers
        │   ├── base_persistence_manager.gd  # Shared JSON I/O base
        │   ├── settings_manager.gd
        │   ├── profile_manager.gd
        │   ├── concept_manager.gd
        │   ├── workspace_store.gd  # Named workspace (tab set) persistence
        │   ├── focus_manager.gd
        │   ├── toast_manager.gd
        │   ├── shortcut_manager.gd
        │   └── update_checker.gd
        ├── terminal/            # Core terminal logic
        │   ├── workspace.gd     # Grid layout, workspace tabs, sidebar, profiles, concept routing
        │   ├── ipc_handlers.gd  # WorkspaceIpcHandlers — IPC/pane-API method dispatch
        │   ├── terminal_pane.gd # Control-based renderer, keyboard, selection
        │   ├── concept_router.gd # Pure concept-event routing (extracted, testable)
        │   └── terminal_manager.gd
        ├── ui/                  # UI components
        │   ├── sidebar.gd       # Vertical stack: window mode, workspaces, panes, profiles
        │   ├── settings_panel.gd
        │   ├── toast_overlay.gd
        │   ├── window_chrome.gd # Titlebar + window-mode/fullscreen handling
        │   ├── markdown_view.gd # Safe shared Markdown renderer
        │   └── icons.gd         # Phosphor icon constants
        └── panes/               # Specialty pane types
            ├── pane_body.gd
            ├── pane_types.gd    # Pane registry, sanitizers, palette command list
            ├── code_viewer.gd
            ├── file_tree.gd
            ├── inspector_pane.gd
            └── reasoning_pane.gd

Key Bindings

Terminal

Shortcut Action
Ctrl+Shift+C Copy selection
Ctrl+Shift+V Paste from clipboard
Ctrl+Shift+F Toggle scrollback search
PageUp / PageDown Scroll through history

Workspace

Shortcut Action
Ctrl+Shift+N Spawn terminal
Ctrl+Shift+D Spawn code viewer
Ctrl+Shift+T Spawn file tree
Ctrl+Shift+O Spawn inspector
Ctrl+Shift+W Close focused pane
Ctrl+Shift+B Toggle sidebar
Ctrl+Shift+P Command palette
Ctrl+Shift+R Reset workspace
F11 / Ctrl+Shift+M Toggle fullscreen
Alt+←↑↓→ Jump to adjacent pane

Note: Ctrl+Shift+C copies the terminal selection; with no selection it does nothing.

Note: Ctrl+V is deliberately passed through to the shell as a literal ^V — shells and TUIs use it (readline quoted-insert, vim visual-block mode). Paste uses Ctrl+Shift+V.

Sidebar

  • [+ Terminal] — spawn a new terminal
  • [Settings] — open global settings panel
  • [Reset] — clear all terminals and layout

Layout is auto-saved on close and auto-restored on startup via user://layout.json.

The shipped Agent Workspace profile opens a normal terminal plus separate Inspector (private Q&A) and Reasoning (passive agent thinking) panes. Five single-pane ecosystem presets ship alongside it: herdr, lazygit, nvim, claude, and OMP — each restores one full-screen terminal running that tool. None of them install the OMP extension or launch omp; the user does that in the terminal. Inspector does not follow the terminal conversation. Reasoning requires the @gpty/omp-events extension and gpty’s Unix event socket (gpty-events.sock); it is not available on Windows builds yet.

Command Palette (Ctrl+Shift+P)

Type partial commands: new, close, settings, reset, save, load.