Adam Perlis
← Work
05 / 10Building

Transistor. A native AI operating system. One agent with persistent memory, skills and scheduled tasks, synced across every device.

Role
Founder · product, design and engineering
Platform
Mac, with Windows, iOS and Android planned
Status
Building
Stack
Tauri 2, Rust, React, TypeScript, SQLite + sqlite-vec, Noise protocol, MCP

Overview

Transistor is a desktop app that runs a personal AI agent on your own computer. Memory, conversations and skills stay on disk, the app holds your credentials itself, and nothing that sends, deletes, pays or publishes goes out until you approve it. It’s early: version 0.1, Mac first.

Why I built it

Every AI app builds a picture of you: your projects, your writing, how you think. That picture lives on their servers, and when a better model ships you start from zero. Cloud agents also run on someone else’s computer and ask for approval rather than enforce it. I wanted it the other way round: the model as an engine you can swap, and your memory and permissions on a machine you own.

What it does

  • One agent, your choice of model. Use a subscription or an API key. Routing picks a model per task, and switching keeps your memory.
  • Memory, skills and routines. Curated facts and searchable history indexed on the Mac, saved skills the agent reuses, and scheduled tasks.
  • An approval firewall. Every tool call is classified, and an unknown tool counts as risky.
  • Apps and plugins. Single-file apps with their own data, and plugins that install switched off and run sandboxed.
  • Sync with no cloud account. Pair devices with a code; sync is peer to peer and end-to-end encrypted.

How it’s built

It’s a Tauri 2 app. A Rust core runs the agent loop, tool calls, approvals, memory and sync in-process, under a React and TypeScript interface. Conversations, memory and skills live in one SQLite file, with sqlite-vec for vector search and embeddings computed on the device. Secrets go to the macOS Keychain and are read through a single credential proxy, so they never reach the model, the logs or git. MCP servers join the same dispatch path, so they pass the same firewall.

Sync is a change log merged last-writer-wins over Noise-encrypted connections, found on the local network or through a small self-hostable relay that only ever sees ciphertext.

I keep the known limits next to the features. Approval keys on tool names, so it stops agent mistakes, not a hostile server that names a destructive tool get_all_files. Hardening that is first on the security roadmap.

Where it is now

Transistor is in development at v0.1 on the Mac, with signed updates that install only after you confirm, on stable and beta channels. Desktop-to-desktop pairing and sync work. The phone side has a written protocol with test vectors, but no client yet, and plugin sandboxing on Windows and Linux isn’t built. The waitlist is at transistoros.com.

Want something like this for your product?

I help founders and teams design, build and ship apps.