🐧 Nexus Desktop for Linux

ljcatherine/NexusNix · Rust 1.95+ · egui 0.37 · Nix flake · NixOS 26.05

An AI IDE and home-lab control room for Linux, built around NixOS. It shares its design (Midnight Liquid Glass), data formats and security model with the Windows edition and the iPhone app.

Features

Area What it does
IDE Workspace explorer that honours .gitignore, .cursorignore and .nexusignore. Multi-tab editor with highlighting for 15+ languages, multi-cursor, find/replace, minimap, split view and a Git gutter. Quick open, command palette, workspace search, source control, build/test tasks with a Problems list, and terminals for your login shell, Bash, Zsh, Fish and PowerShell.
AI Codex (official codex app-server) and Claude Code (official CLI) in Ask, Plan, Agent and Bypass modes, plus OpenAI-compatible APIs and NexusAI. Visible context sharing, secret detection, image and PDF attachments, command approvals, hunk-by-hunk review of agent edits, Ctrl+K inline edits, resumable sessions with task memory.
Infrastructure Dashboard with live telemetry and alerts, devices with pinned SSH host keys, services, logs, processes and network probes. SSH and SFTP terminals, NixOS dry-build and switch, Debian shadow workspaces, Minecraft and PS5LM status.
Security One Rust policy engine for every remote action. The protected Debian server is read-only by default, enforced on the server by nexus-ro. The owner can unlock writes for 30 minutes; agents never can. Optional app lock with the iPhone’s 4-digit code.

Install

Needs Nix with flakes on x86_64 or aarch64 Linux.

nix run github:ljcatherine/NexusNix

On NixOS:

# flake.nix
inputs.nexus-nix.url = "github:ljcatherine/NexusNix";

# a NixOS module
imports = [ inputs.nexus-nix.nixosModules.default ];
programs.nexus-desktop.enable = true;

The module installs the app, a desktop entry, the sign-in URL handler and an XDG portal. The package is marked unfree; the flake’s outputs allow it.

Runtime needs: a Secret Service provider (KWallet or GNOME Keyring) and an XDG desktop portal. It runs through XWayland by default so the app lock can detect minimising; NEXUS_WAYLAND=1 switches to native Wayland.

Configure

Copy docs/site.example.json to ~/.config/nexus-desktop/site.json, or set programs.nexus-desktop.site in NixOS. See Configuration.

AI providers

Provider Setup
OpenAI Codex Install the Codex CLI, codex login
Claude Code Install Claude Code, claude auth login
OpenAI-compatible Settings → AI providers; keys go to the Secret Service
NexusAI Settings → AI providers → its LAN URL

A provider shows Connected only after sign-in and a real test turn both succeed.

Read-only Debian with nexus-ro

Build nexus-ro from the workspace and install it on the Debian server as a forced command for the Desktop key. See Debian → nexus-ro.

Build from source

nix develop
cargo build --release -p nexus-app
cargo test --workspace
nix build            # runs the full test suite in the sandbox, then packages

Crates

nexus-app (application) · nexus-ui (design system) · nexus-ide (editor) · nexus-terminal (PTY on alacritty_terminal) · nexus-providers (Codex, Claude Code, OpenAI-compatible) · nexus-agents (sessions, snapshots, memory) · nexus-context (context rules, secret scan) · nexus-workspaces (search, shadow workspaces) · nexus-git · nexus-security (policy engine, catalog, audit, host keys, OTP) · nexus-ro (server helper) · nexus-ssh · nexus-access (Cloudflare sign-in) · nexus-telemetry · nexus-core (iOS-compatible device model, XDG integration).

Docs in the repo: STATUS, PARITY-LINUX, PARITY, SECURITY-MODEL, OTP, BUILD-AND-RELEASE.

Edit this page on GitHub ↗