Coder Desktop is a local-first AI coding workspace that gives you the power of AI-assisted development inside a real desktop app while keeping full ownership of your projects, files, tools, and workflow in one secure, unified environment.
The goal is simple: make software development feel calmer, more capable, and more under the user's control.
Coder Desktop is a Project By Rubic. Development is by Elijah Shepherd.
This repository is the desktop version of Coder. Other Coder projects, including the CLI, are still in active development and will be added to GitHub when they are ready for public release.
Note
Coder Desktop is a desktop application. Browser renderer checks are only for development and documentation review.
Important
Official downloads come from the versioned GitHub Release page. The downloads folder is a temporary staging area used by the GitHub Actions release workflow — binaries are never committed to git.
Tip
Badge meanings, documentation tags, and maintenance rules are explained in docs/status-badges.md.
Coder Desktop is an Electron, React, and TypeScript application designed around local desktop control. It keeps project work on the user's computer, asks configured AI providers for help, and keeps sensitive desktop capabilities behind a controlled bridge.
The app is intended to feel closer to a focused coding workbench than a general chat product. The main experience is an adjustable sidebar, a central conversation surface, a floating composer, local activity cards, and a bottom-right settings card.
- Local-first by default. Project files and local tools remain on the user's computer unless the user chooses what to send to a provider.
- Provider-flexible. The app supports multiple AI providers instead of locking users into one service.
- Calm interface. The UI should feel soft, minimal, and professional, with motion used carefully.
- Explicit permission boundaries. File tools, folder tools, shell commands, and permission prompts are controlled through settings.
- Real desktop releases. Downloads should be actual packaged applications, with release assets attached to GitHub Releases.
- Human documentation. Documentation should explain the product clearly and completely.
Coder Desktop includes the foundations expected from an AI coding workspace:
- New chats and searchable chat history.
- OpenAI, Claude, and NVIDIA provider configuration.
- Local API key storage through the desktop app.
- Preferred working folder selection and recent folder tracking.
- Local tool activity cards for file edits, folder changes, shell commands, and Windows information commands.
- Web search and public page fetching through main-process internet tools.
- Queued prompts while a chat is already working.
- Todo progress cards and Let me know clarification cards for larger or unclear tasks.
- A strict Let me know mode that asks before inferring missing details when enabled.
- End-of-message copy, like, dislike, and response timing actions.
- Sanitized GitHub feedback and automatic bug reporting when GitHub authentication is available.
- In-chat image generation cards.
- Full-screen tabbed settings for providers, access, personalization, AI functionality, and local maintenance.
- Auto-saving settings changes across the desktop settings surface.
- A security panel for file reading, file editing, shell commands, internet access, and permission prompt controls.
- Up to three fallback models per provider.
- Background provider health checks that remove clearly failing fallback or image models and report sanitized evidence only when problems occur.
- NVIDIA FLUX image model scanning and selected image model settings.
- Image generation fallback across configured NVIDIA FLUX models.
- Multiple image generation for one to three requested images in a single response.
- Copy image link actions for generated images.
- Reasoning effort controls for models that support reasoning.
- Custom accent color personalization with theme-aware contrast protection.
- Adjustable and collapsible sidebar.
- Theme switching inside Settings, chat creation, settings access, and sidebar behavior inside the desktop app.
- Startup update checks through GitHub Releases.
- Windows and macOS release packaging.
- Background-free Coder Desktop logo rendering in the app.
Coder Desktop has three main runtime surfaces:
- Sidebar. Shows navigation, chats, search, settings access, and collapse controls.
- Chat surface. Shows the active chat, the build prompt, model status, local activity cards, queued prompts, and the composer.
- Settings card. Opens from the bottom-right control and contains provider and security settings.
The renderer is intentionally isolated from direct Node.js access. It talks to the desktop system through a preload bridge. The main process owns provider calls, local persistence, dialogs, updates, and permission enforcement.
The project currently supports these provider families:
- OpenAI.
- Claude.
- NVIDIA.
Each provider has configurable model, base URL, and API key fields. Provider settings are sanitized before storage. API keys are stored locally and are handled separately from normal public app state.
More provider details are available in docs/provider-setup.md.
Coder Desktop exposes local capabilities through the trusted Electron main process, not through direct renderer access.
Current tool behavior includes:
- File listing through the trusted desktop bridge.
- File reading through the trusted desktop bridge.
- File editing with compact diff summaries.
- File and folder creation.
- File and folder deletion.
- Shell commands from the selected workspace when shell access is enabled.
- Windows PowerShell information cards for approved read-only commands such as
systeminfo,ipconfig,tasklist,Get-Process,Get-Service,whoami,hostname, andGet-Date. - Internet search and public page fetching when internet access is enabled.
- Progressive chat state updates so a command can appear as an active card while the app is working.
- A branded provider system prompt that explains the current tool state and tool request formats.
- Clean activity cards that show tool work in chat, including edit summaries such as
+45 -31.
File and folder tools use the selected workspace. Explicit absolute paths are accepted only when they resolve inside that workspace. PowerShell information cards remain limited to approved information commands. Shell commands are controlled by the shell command permission.
Coder Desktop is designed around explicit local permissions. The security model is not meant to replace careful user judgment, but it does make sensitive actions visible and configurable.
Important defaults and controls include:
- Renderer sandboxing.
- Context isolation.
- No direct renderer Node.js access.
- Default-deny browser permission requests.
- External navigation restricted to safe protocols.
- Read file, edit file, and shell command controls.
- Permission prompt controls.
More detail is available in docs/security.md.
The app can quietly check GitHub Releases when it opens. If a newer compatible release exists, the user sees a small corner prompt with the new version number and a Click here to install action. The prompt is version-based, so the app does not ask the user to reinstall the same version.
The update flow is intentionally split:
- The main process checks GitHub Releases.
- The main process chooses the correct asset for the current platform and CPU architecture.
- The renderer only displays update information and progress.
- The Click here to install button opens the matching GitHub Release asset for the current operating system and CPU architecture.
- Windows, macOS, and other packaged formats are handled as release downloads instead of trusted renderer-provided URLs.
This keeps download decisions away from untrusted renderer input and prevents the app from closing before the user reaches the real GitHub download.
Release artifacts live in versioned folders under downloads. Older release folders can be moved or copied into old-downloads as the public archive grows.
Typical artifacts include:
- Windows setup installer for x64.
- Windows portable executable for x64.
- Windows ZIP archive for x64.
- Windows ZIP archive for ARM64.
- macOS ZIP archive for x64.
- macOS ZIP archive for ARM64.
- Windows installer blockmap for update tooling.
- Manifest with artifact sizes and SHA-256 hashes.
GitHub Releases attach the real files from the matching download folder. The publish workflow builds on Windows/macOS runners and uploads directly to the release — binaries are never stored in git.
Windows SmartScreen reputation cannot be solved only by application code. A production release should be signed with a trusted code-signing certificate, timestamped, distributed consistently, and submitted to Microsoft when reputation or false-positive issues need review.
The project includes packaging support, icons, metadata, and NSIS configuration. A trusted release environment still needs a real certificate and stable publisher identity.
More detail is available in docs/code-signing-and-smartscreen.md.
Recommended local tools:
- Node.js 20 or newer.
- npm.
- Git.
- PowerShell on Windows.
Install dependencies:
npm installRun the desktop app in development:
npm run devRun the core checks:
npm run typecheck
npm test
npm run buildRun a full local Windows release build:
npm run release:currentThe project uses Electron Builder for desktop packaging.
Common commands:
npm run package
npm run dist
npm run release:windows
npm run release:windows:nsis
npm run release:macos
npm run release:manifestNotes:
- Windows artifacts can be built locally on Windows.
- macOS application ZIPs should be built on macOS or through the macOS GitHub Actions workflow.
- The manifest script records artifact sizes and hashes.
- Release folders should not contain empty or temporary download files.
Important paths:
- src/main: Electron main process code, IPC handlers, providers, storage, local tools, and updates.
- src/preload: Secure preload bridge exposed to the renderer.
- src/renderer: React app, UI components, hooks, CSS, and browser development API.
- src/shared: Shared types, defaults, and cross-runtime helpers.
- docs: Product, security, architecture, provider, and signing documentation.
- docs/features: Feature guides for chat workflow, local tools, providers, updates, and security behavior.
- docs/releases: Version-specific release notes.
- downloads: Public release artifact folders.
- old-downloads: Archive area for older public release artifacts.
- .github: Workflows, issue templates, and repository automation.
Project documentation:
- Architecture
- Security
- Provider setup
- Feature guide
- Future features
- Code signing and SmartScreen
- Open source policy
- Status badges and documentation tags
Repository documentation:
Coder Desktop is published for transparency and public inspection. The repository is source-available and read-only for public contribution unless Elijah Shepherd explicitly invites a change.
Issues may be used for reports and project communication. Pull requests are not accepted by default.
Coder Desktop is early, but it is being structured like a real desktop product. The current focus is reliable packaging, trustworthy downloads, provider configuration, interface quality, clear security controls, and clear documentation.