Getting Started

Nexion is a native macOS workspace that brings your terminal, web browser, file manager, and Git tools into a single window. Built with Swift and SwiftUI, it is designed for developers who work with AI coding agents and want to stop switching between apps.

System Requirements

  • • macOS 15.0 (Sequoia) or later
  • • Apple Silicon only

Configuration Directory

All of Nexion's configuration, plugins, userscripts, and cached data live in a single directory: ~/.nexion/. This directory is automatically created the first time you launch the app. Because everything is contained in one place, your entire setup is fully portable: copy it to a new Mac and you are ready to go.

~/.nexion/
├── config.json            # All preferences (flat key-value JSON)
├── codex-auth.json        # Codex/ChatGPT OAuth tokens
├── history.json           # Browser history (500 entries)
├── recent-tabs.json       # Recently closed web tabs
├── Plugins/               # Plugin bundles (.nexionplugin)
├── Plugins-Data/          # Sandboxed per-plugin data storage
├── Userscripts/           # Greasemonkey-compatible userscripts
├── bookmark-thumbnails/   # Cached bookmark preview images
└── bookmark-favicons/     # Cached bookmark favicons

Per-project data is stored in a .nexion/ directory inside the project root:

your-project/
└── .nexion/
    ├── config.json        # Project name and accent color
    └── scratchpad/        # Notes (Markdown files with YAML frontmatter)

Quick Tour

When you open Nexion, you get a single window. Inside it are spaces, one context each, and inside a space are your projects and your tabs:

  • • Terminal: A GPU-accelerated terminal powered by Ghostty with infinite split panes, 458 color schemes, and full PTY support.
  • • Browser: A full WebKit-based web browser with tabs, bookmarks, downloads, profiles, userscripts, ad blocking, and AI page summaries.*
  • • Finder: A file manager sidebar with tree view, git status badges, gitignore-aware dimming, and search.
  • • Git: Full Git integration with staging, commit, push, branch management, commit history browser, and AI-powered features.*
  • • Preview: A code and Markdown previewer with syntax highlighting, diff viewer, image preview, rendered Markdown toggle, and right-click "Explain with AI".*
  • • Notes: A scratch pad for quick notes with custom tags, Markdown support, and drag-to-reorder, persists across sessions.

* AI features require an AI provider to be configured in Preferences > Bots > AI Features.

Tabs & Panes

Nexion's workspace is organized into tabs. There are two tab types:

  • • Project tabs (Cmd+T): A terminal beside a sidebar of cards: Finder, Git, GitHub Issues, Attach, Notes, and any panel a plugin adds. Open the ones you want from the sidebar's + menu and arrange them as you like: the project remembers it. Each project tab runs its own shell session.
  • • Web tabs (Cmd+Y): A full browser tab with its own address bar, navigation, and tab history.

Project tabs can be split into panes: each pane runs an independent terminal. Splits can be nested recursively for as many levels as you need. Use Cmd+D for a vertical split or Cmd+Shift+D for a horizontal split. Navigate between panes with Cmd+Opt+Right/Left.

Switch tabs with Cmd+1 through Cmd+9, or cycle through them with Cmd+Up/Down. Tabs can be reordered by dragging.

Session Restoration

Nexion automatically saves and restores your workspace session. When you relaunch the app, all your open tabs and split pane layouts are restored to exactly where you left off.

Project Configuration

Each project can have a .nexion configuration file in its root directory to customize per-project settings:

{
  "name": "My Project",
  "accentColor": "#FF6B35"
}

The project name appears in the window title and workspace selector. The accent color gives each project a unique visual identity.

AI Setup

Nexion supports multiple AI providers for its built-in features: code explanation, terminal analysis, command assistance, commit message generation, diff summaries, PR description generation, and page summarization. Configure your preferred provider in Preferences > Bots > AI Features.

Supported providers:

  • • Anthropic: Use an API key from console.anthropic.com.
  • • OpenAI: Use an API key from platform.openai.com.
  • • Codex / ChatGPT: Sign in with your ChatGPT account - no API key needed.
  • • Gemini: Use an API key from aistudio.google.com. (The previous "Sign in with Google" mode was removed: Google's ToS reserves that backend for the official Gemini CLI.)
  • • GitHub Models: Use a GitHub access token with Models access enabled.

Each AI feature can use a different model and response language, configured individually in the AI preferences panel.

If you use AI bots within the terminal (Claude Code, Codex, Gemini CLI, Antigravity (agy), Aider, GitHub Copilot CLI), those bots require their own separate subscriptions or API access. Nexion provides the workspace and the notification plumbing: each tool handles its own authentication.

Command Palette

Press Cmd+Shift+P to open the Command Palette: a searchable launcher for all available commands. Built-in actions include opening any Preferences tab, refreshing plugins, adding notes, and more. Plugins can register their own commands here too.

Leaving

To make notifications and MCP tools work, Nexion writes itself into a few places outside its own folder: a # Nexion block in your ~/.zshrc, a claude shim, and server entries in Codex, Gemini and opencode. Dragging the app to the Trash removes none of it, and those entries would go on launching a server for an app that is no longer there.

So before you delete the app, run:

nexion uninstall

It removes only what Nexion installed, matched by the same markers it wrote, so a nexion server you configured yourself and anybody else's hooks in the same files are left alone. Your own data in ~/.nexion is never touched: config, history, notes, plugins and keys stay where they are, in case you come back.

Use --dry-run to see the list without changing anything, and --cli to also remove the /usr/local/bin/nexion symlink. Open a new terminal afterwards for the shell change to take effect.