Paneflow is a native, GPU-accelerated terminal workspace built for agentic
CLI workflows. This page walks through what it does, capability by
capability. New to Paneflow? Start with [Get started](/docs).

  ## Split panes and layouts [#split-panes-and-layouts]

  Split the focused pane horizontally (`Cmd/Ctrl+Shift+D`) or vertically
  (`Cmd/Ctrl+Shift+E`); each new pane spawns a fresh shell in the same
  working directory. Move focus structurally across the tree with
  `Alt+Arrow`. Reshape the whole workspace in one keystroke with the four
  [built-in presets](/docs/layouts) — even horizontal, even vertical,
  main vertical, and tiled.

  ## Agent-first panes [#agent-first-panes]

  Launch Claude Code, Codex, OpenCode, or any CLI agent as a first-class
  pane with a branch-aware workspace badge. The "AI agent" pane is a UI
  affordance, not a dependency: Paneflow runs whatever is on your `PATH`,
  with no login, no API key, and no model picker inside the app itself.

  ## Workspaces [#workspaces]

  Paneflow's mental model is two layers — **workspaces** (independent
  project contexts) and **panes** (terminal splits inside a workspace).
  Add a workspace with `Cmd/Ctrl+Shift+N` and jump between them with
  `Cmd/Ctrl+1-9`. Each workspace is named after the directory it opened
  from, so the window always tells you where you are.

  ## Persistent sessions [#persistent-sessions]

  Workspaces and their pane trees persist across launches, so reopening
  Paneflow drops you back into the layout you left — splits, working
  directories, and running shells intact. Pick up a long-running agent
  thread or a dev server exactly where you stopped.

  ## Dev-server port detection [#dev-server-port-detection]

  When a process inside a pane binds a port, Paneflow surfaces it
  automatically — no manual wiring, no external tools. A burst of
  terminal activity schedules a scan (debounced 500 ms, re-run at +2 s
  and +6 s to catch slow-binding servers) that reads the OS socket
  tables directly: `/proc/net/tcp` cross-referenced with the pane's
  process tree on Linux, `libproc` socket enumeration on macOS. Each
  port is attributed to the pane whose shell owns it.

  In parallel, terminal output is matched against the startup banners
  of 21 dev servers. Frontend ones — Next.js (including Turbopack),
  Vite, Nuxt, Remix, Astro, Webpack, Angular — get a clickable URL in
  the sidebar; backend frameworks from Express, Flask, and Django to
  Axum and Spring get a labeled port. The edit-refresh loop stays
  inside the workspace.

  ## Headless scripting (CLI, MCP and JSON-RPC) [#headless-scripting-cli-mcp-and-json-rpc]

  Drive Paneflow from outside the GUI: since v0.4.0 the `paneflow`
  binary is also a CLI with 12 verbs over a JSON-RPC IPC socket at
  `$XDG_RUNTIME_DIR/paneflow/paneflow.sock` — list panes, read and
  search scrollback, split, focus, inject text behind an explicit
  scripting gate, block on output patterns, spawn declarative agent
  workspaces (`paneflow up`) and run multi-agent pipelines
  (`paneflow flow`). An MCP server exposes the read operations to
  agents, so an assistant can inspect what another pane printed without
  you copy-pasting. The full command and method reference lives on the
  [scripting and automation page](/docs/scripting).

  ## Custom action buttons [#custom-action-buttons]

  Pin a frequent command to a one-click button at the top of the window.
  Give it a name, a shell command — say `clear && cargo run` for a dev
  server — and an icon, then click it to run that command in the focused
  pane. Stop retyping your build, test, or lint invocation on every loop.

  ## File tree sidebar [#file-tree-sidebar]

  Open a sidebar on the current workspace to browse the full file tree of
  your codebase. Send any file into its own pane — open a markdown spec or
  a PRD right next to a Claude Code session so the document stays in view
  while the agent works. Copy any file's absolute or relative path in one
  click, ready to paste into a prompt or a command.

  ## Projects [#projects]

  Point Paneflow at a codebase folder and it becomes a project: the file
  tree opens in the sidebar, the active Git branch shows in the header,
  and new panes are scoped to that directory. It's the working context
  every session, split, and action runs inside.

  ## Multiple projects in one window [#multiple-projects-in-one-window]

  Open several codebases as tabs in the same window and switch between
  them without juggling OS windows. Each project keeps its own panes,
  branch, and file tree, so a Claude Code session in one repo stays put
  while you jump to another.

  ## Git worktrees [#git-worktrees]

  Create a Git worktree to run an experiment or an independent task
  without touching your main checkout. Paneflow opens the worktree as its
  own context — isolated branch, isolated files — so you can run parallel
  work side by side and throw it away cleanly when you're done.

  ## Agent chat [#agent-chat]

  Open a dedicated chat that launches Claude Code, Codex, or any agent CLI
  from your home directory (`/home/arthur`) instead of a project. It's a
  ChatGPT- or Claude-style conversation surface that runs in the terminal
  with the full power of a coding agent behind it — for research,
  planning, or quick questions that don't belong to a specific codebase.
  A sidebar keeps your past chats one click away.

  ## Project threads, any agent [#project-threads-any-agent]

  Inside a project, run multiple threads — independent agent sessions —
  and choose which CLI drives each one: Claude Code, Codex, OpenCode, Pi,
  Hermes, Openclaw, Factory's Droid, or anything else on your `PATH`. Mix
  them per thread, so one thread can plan with Codex while another
  implements with Claude Code, side by side in the same project.

## Keep exploring [#keep-exploring]

* [Keybindings](/docs/keybindings) — the 23 default shortcuts and how to remap any action.
* [Configuration](/docs/configuration) — where `paneflow.json` lives and what every key does.
* [Troubleshooting](/docs/troubleshooting) — Vulkan on Linux, Gatekeeper on macOS, PATH, fonts.