Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevOS

The development tools everyone raves about are Mac-first. This one isn't.

A keyboard-driven developer operating center for Windows: terminal, git, an AI assistant with real tools, and ten more modules behind one command palette — one app for the daily development loop instead of seven windows and an alt-tab habit. Built on Tauri v2 (Rust + React 19), so it starts like a native app rather than a browser wearing a costume.

The DevOS dashboard

Download for Windows · MIT licensed · no account, no telemetry, no server


The AI assistant has your project, not just your prompt

It reads files, searches code and runs commands — under a two-tier grant where reads are allowed once and anything that writes or executes asks every single time. Bring your own key: Claude, Gemini (which has a free tier), or a local Ollama model for fully offline use.

The AI assistant working inside a project

The terminal notices when something breaks

Sessions live in the Rust process and survive route changes. A non-zero exit raises a notification and offers the failure — command, output, exit code — to the AI in one keystroke, instead of you copying a stack trace into a browser.

A terminal session


Status: v0.1.0, Windows-only, and built by one person for one person. The project's own definition of 1.0 is "the author's actual daily driver with no missing core-loop feature" — it is not there yet. Nothing here is supported software, and several modules are deliberately a thin slice of the tool they resemble. The tables below say exactly where each one stops, because finding that out after installing is worse than reading it here.

Windows only, today

DevOS runs on Windows 10/11 x64 and nowhere else. This is a scope decision, not an architectural one — the kernel and every module crate are OS-neutral Rust — but the OS-specific adapters only exist for Windows:

  • Terminal sessions are ConPTY, and the terminal tests only compile under #[cfg(all(test, windows))].
  • The automatic build-failure watcher injects an OSC 133 prompt hook into PowerShell specifically.
  • Path containment guards handle Windows reparse points (junctions), which is a different check from POSIX symlinks.
  • The dependency advisory gate (deny.toml) resolves only the x86_64-pc-windows-msvc target.
  • The end-to-end suite uses tauri-driver, which has no macOS support.

macOS and Linux are additive work — keyring backend, pty backend, capture backend — not a rewrite. They are not started, not tested, and not scheduled.

What's in it

Thirteen modules. What each one does, and where it stops:

Module What works What it does not do
Terminal (Ctrl+3) ConPTY sessions that live in the Rust process and survive route changes; tabs, split view, exit detection; a 32 KB output ring buffer feeding a one-click "diagnose this failure" hand-off to the AI chat; non-zero exits raise a notification The prompt hook that detects those exits is PowerShell-only. Other shells get the terminal, not the watcher
Git (Ctrl+4) status / stage / unstage / discard / commit / log / branches / switch + create / diff / push / pull, through the git CLI's porcelain v2 output (ADR-0001) No merge, rebase, stash, tags, remote management, or conflict resolution. Push and pull use whatever credentials your system git already has
AI assistant (Ctrl+5) Streaming chat against Claude, Gemini, or a local Ollama; persisted conversations; project-aware context; commit-message generation from the staged diff; long-term per-project memory; hybrid code search (BM25 + embeddings + tree-sitter symbols, fused by reciprocal rank) Tool calling is Claude-only — Gemini and Ollama stream plain chat, and the desktop layer gates tools on the provider rather than silently dropping the grant. Embeddings need Ollama running; without it, search degrades to lexical instead of failing
Files (Ctrl+6) Lazy directory tree, mono preview with line numbers, filename search, full-text content search — every path through the shared containment guard Read-only. There is no create, rename, move, or delete
Docker (Ctrl+7) Containers (state, ports, start / stop / restart, last-200-line logs) and images over the Engine API named pipe; a real "Docker isn't running" state with reconnect polling No volumes, compose, live stats, or image pull/remove
API client (Ctrl+8) REST requests with a header and body editor, response viewer (status, timing, size, pretty JSON, headers), saved requests grouped into collections, automatic history capped at 100 No environments and no variables — every request is literal. No GraphQL, WebSockets, auth helpers, or code generation
Database (Ctrl+9) SQLite only. Named connections, schema explorer (tables, views, columns, file size), SQL editor, read-only result grid capped at 500 rows with an explicit truncation flag. Writes are refused unless a toggle that starts off is turned on No Postgres or MySQL — the driver column exists, the sqlx driver features are deliberately not enabled (ADR-0007). No query history, saved queries, ER diagrams, export, or row editing
System metrics (dashboard) CPU and cores, memory and swap, uptime, per-disk capacity, top processes by CPU A live readout with no loop behind it. Nothing is persisted, so there is no history, no charting, and no alerting on a threshold
Monitors (Ctrl+0) Named HTTP uptime checks with per-monitor intervals, 24h uptime percentage and average response time, the newest 30 checks, manual re-check, notifications on ok↔fail transitions Only runs while DevOS is open (ADR-0008). Checks that a site answers, not that it answers correctly. Alerts land in the in-app Notification Center only — no email, webhook, or Slack
Deployments (Ctrl+Shift+D) Read-only Vercel visibility: projects and their recent deployments (state, target, URL, commit message, timestamp) No triggering, promoting, rolling back, or deleting — deliberately (ADR-0009). Vercel only; no Netlify, Fly, Railway, or Cloudflare
Screenshot → GitHub issue (Ctrl+Shift+S) Capture the primary monitor, annotate and redact, review and edit the exact generated issue body, file it via the GitHub REST API Does not attach the image. GitHub documents no API for that, so the image is handed off through the clipboard for you to paste — one manual step, by choice
Snippets (Ctrl+Shift+N) A searchable library of reusable fragments; substring search across title, body, tag and language; copy-to-clipboard as the primary action Substring LIKE, not FTS5 — deliberate, so Query matches inside useQuery
Audit log (Settings) An append-only record of AI tool approvals and denials, secret set/delete by name, SQL writes, filed issues, and database restores. 90-day retention, with the window, total row count and reach-back date printed in the viewer Not editable, clearable, or exportable from the app — that is the point. Read-only IPC, age-based pruning only

Around them: workspaces and projects, a Ctrl+K command palette that merges frontend navigation with backend-contributed commands, a notification center, three themes plus a System option that follows prefers-color-scheme, and automatic pre-migration and daily database backups with a staged restore that applies on the next boot — validating the candidate first and preserving the database it displaces, so a mistaken restore is itself recoverable.

Not built, and honestly flagged as such: the plugin runtime is a working wasmi spike in crates/devos-plugin that is not registered with the appADR-0010 lists what would have to be true first. There is no plugin marketplace, no project templates, no repository cloning, and no embedded DevTools.

Install

From a release

Download from the Releases page:

  • DevOS_<version>_x64-setup.exe — NSIS installer, ~5.9 MB
  • DevOS_<version>_x64_en-US.msi — MSI installer, ~8.4 MB

Both are x64 Windows. DevOS uses the system WebView2 runtime rather than bundling Chromium, which is where the small download comes from; WebView2 ships with Windows 11 and current Windows 10, and the bundle config leaves Tauri's default bootstrapper in place to fetch it if it is absent.

The installers are not code-signed yet, so Windows SmartScreen will warn on first run. Code signing and the in-app updater are being wired up separately — see docs/release-process.md.

From source

Prerequisites:

  • Rust stable, MSVC toolchain (CI uses dtolnay/rust-toolchain@stable)
  • Node 20+ and pnpm (CI builds with Node 24 and pnpm 11)
  • Microsoft C++ Build Tools and the Windows SDK — Tauri's standard Windows prerequisites
  • git on PATH — the Git module shells out to it rather than embedding libgit2
pnpm install
pnpm tauri dev      # run the app against the Vite dev server
pnpm tauri build    # produce the MSI and NSIS installers in target/release/bundle

Optional at runtime: Docker Desktop for the Docker module, Ollama for local models and embeddings. Both degrade to a clear "not running" state rather than an error when absent.

AI providers and keys

Three providers, all bring-your-own-key or bring-your-own-model. DevOS proxies nothing, has no account, and sends no telemetry.

Provider Credential Notes
Claude (Anthropic) Your API key, entered in the app The default. The only provider with tool calling
Gemini (Google) Your API key, entered in the app Chat only. The key travels as an x-goog-api-key header, never in a URL
Ollama None Local, offline. Base URL configurable; defaults to http://localhost:11434

How keys are stored. A master key is generated once and kept in the OS keystore (Windows Credential Manager). Individual secrets are encrypted with AES-256-GCM, fresh nonce per write, into the local SQLite database — so the database file on its own is useless without the keystore entry. Values are write-only from the UI's point of view: they never cross the IPC boundary outward, so the secret manager in Settings can list names, overwrite and delete, and there is no reveal button because there is nothing to reveal.

The AI has filesystem and shell tools, and they are off by default. Reading files requires an explicit per-conversation grant; editing files, writing files, and running commands require a second grant that is session-scoped and forced off at every launch, and every individual call then pauses on an approval card showing the full arguments. Read docs/security.md before turning the second one on.

Where your data lives

One SQLite database per install at %APPDATA%\com.peshang.devos\devos.db (WAL mode), plus rotating backups and a screenshots directory beside it. Override the root with the DEVOS_DATA_DIR environment variable. Nothing is uploaded anywhere; the only outbound traffic is to the provider or service a feature is explicitly talking to.

Performance

Measured on the author's machine, not a benchmark rig, and the honest answer depends on your data. Against a small database, 534 ms cold start to kernel-ready. Against the author's real 107 MB one — most of it the code index — 2141–2436 ms, which misses the project's own 1000 ms budget.

The cause is not established and docs/performance.md says so rather than guessing: kernel boot itself stays at 61 ms, so the missing two seconds sit somewhere nothing currently instruments. Note also that this number stops at "kernel ready", before the webview's first paint, so what you perceive is longer than any figure here.

Tests

376 Rust tests (cargo test --workspace) and 384 frontend tests (pnpm test), plus a 7-test WebdriverIO smoke suite (pnpm e2e). The Rust count includes the export_bindings_* tests ts-rs emits per exported DTO, so the behavioral count is lower than the total.

The conventions matter more than the count: no mocked databases, no mocked subprocesses where a real one is feasible, and security-relevant behavior gets a test that fails if the guard is removed. docs/testing.md has the per-crate breakdown and a "known gaps" section that is kept current.

Documentation

The knowledge base in docs/ is written to be honest about what is missing, and it is the primary source for everything above:

vision · architecture · tech stack · coding guidelines · feature roadmap · design system · database · IPC contracts · plugin API · security · performance · AI & agents · release process · testing · architecture decisions

Start with feature-roadmap.md for what has shipped per milestone and what was deferred within each module, and docs/adr/ for why the non-obvious calls went the way they did. CHANGELOG.md is the same story per release rather than per module.

Contributing

See CONTRIBUTING.md for the gate commands, the generated- bindings rule, and the testing conventions. Security reports go through SECURITY.md, not a public issue.

License

MIT © 2026 peshang

DevOS links a lot of other people's work. Their licenses and copyright notices are reproduced in THIRD-PARTY-NOTICES.md — 401 Rust crates and 141 npm packages, all permissive, with no GPL or AGPL anywhere in the graph.

About

AI-first, keyboard-driven development environment for Windows: terminal, git, Docker, API client, database browser, code search and an AI agent in one Tauri app.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages