Everything runs on your machine
Deck is a desktop app, not a cloud service. The terminals, the agents, git and your files stay on your computer. There is no copy of your code on a server of ours, and no syncing between machines.
Maze Analytics runs two services, and neither one sees your work: the account service, which authenticates the login, and the usage metrics service, which receives operational events from the app and can be turned off. What each one receives is spelled out in the Privacy policy.
What Deck runs
Every session is a real terminal, opened with your shell, under your operating system account. On macOS the sessions live in a tmux server that belongs to the app, so you can close or update Deck without killing what is running. On Windows the app uses ConPTY directly.
That means commands have exactly the permissions you have. Deck adds no privilege, and it does not build a sandbox around the agent: if a command can delete a file in your terminal, it can delete the same file here.
Beyond the shell, the app runs tools you already have installed, such as git and the GitHub CLI, always with your logins.
You are the one who approves
When an agent is asking permission to use a tool, Deck does not hide the request: the session lights up in the sidebar, the system icon signals it and the notification says which agent is waiting. A request left hanging too long comes back, so it does not slip by among several sessions.
- Plan mode. You can open a session in plan mode, where the agent proposes and does not edit.
- Connections with limits. In tasks, agents only create in the lists you authorized in Settings.
- Skipping the confirmations is your call. Deck exposes the option some agents offer to waive per-tool approval. It is there because it helps in a disposable environment, and it does not come turned on.
One task does not run over another
Each session can start in a worktree of its own: separate folder and branch, files and staging area independent of the rest. Two agents working at the same time do not fight over the same directory and do not write over each other.
To review a pull request from someone else, Deck opens a separate area, built for reading, instead of touching your working copy. Where those folders go is your choice in Settings.
Keys and tokens
- Deck asks for no agent API key at all. It uses the login already in the command line tool of the agent, the way you would in the terminal.
- GitHub stays yours. The app talks to GitHub through the GitHub CLI authenticated on your machine. Deck stores no GitHub token.
- What has to be stored goes to the system keychain. Your ClickUp token and your Deck account credential are encrypted by Electron safe storage, which is Keychain on macOS and DPAPI on Windows.
- No keychain, no writing. If safe storage is not available, the app refuses to write instead of falling back to plain text. In that case the login lasts only while the app is open, and the screen says so.
- A log is no place for a secret. Before any text goes to a log or to diagnostics, the app masks known key and token patterns, keeping only the start for context.
Inside the app
- The window runs with context isolation and in sandbox mode, with no Node integration. The interface only talks to the system through a closed list of calls declared in the preload.
- Each call is accepted only if it comes from the main window of the app itself, and work actions stay blocked while no account is cleared.
- The app loads only its own interface, from a local file. An external link never opens inside the app: it goes to your browser, and only if it is an http or https address.
- The built-in browser runs in a separate session per pane and denies camera, microphone, location and new windows by default.
- The database rules of the account service deny any direct read or write from the client. Everything goes through the API, which checks the identity.
Signing in
- A password of at least 12 characters, handled by Firebase Authentication. Maze Analytics never receives or stores your password.
- Signing in with Google uses proof of possession generated on your computer. The browser carries only a throwaway code, which comes back to a local address inside the app.
- The sign-in attempt expires in ten minutes. The return code is valid for one minute and can be used only once.
- You can end every signed-in session at once, which invalidates access on all computers.
- Signing in with Google in Deck does not connect your GitHub and gives no access to Gmail or Drive.
Updates
When a release comes out, the notice shows up inside the app and the decision to update is yours. The manifest and the package are downloaded over HTTPS, and the app checks the SHA-256 sum of the file against the one in the manifest before installing. If the sums differ, the update is refused.
The same check runs in the install commands published on the home page. On macOS, the tmux sessions stay up through the version change.
What Deck changes on your system
To know when an agent is asking permission or has finished a turn, Deck registers hooks and a status line in the Claude Code configuration file, in your home folder. This is done by addition, preserving what was already there, with a copy of the previous state kept alongside.
Beyond that, the app writes only inside its own folder: state, preferences, local history, drafts and the scripts it uses itself. Settings has an option to remove whatever was added to the Claude Code file.
What we do not do yet
It is worth naming what is not ready, so nobody counts on something that does not exist:
- Commands are not confined. Deck shows and organizes what the agent does, but what limits its reach is the operating system and your review.
- The macOS package is not signed or notarized by Apple yet. Integrity today rests on the SHA-256 check in the download, in the installer and in the updater.
- The interface fetches two fonts from Google Fonts on open. It is the only third-party request the app makes on its own, and it sends none of your data.
- There is no bug bounty program. We take reports and act on them, but we do not pay for them.
Reporting a vulnerability
Found something that looks like a security flaw? Write to deck@mazeanalytics.com.br with a subject line that starts with Security. We answer within three business days confirming receipt and saying what we will do.
It helps a lot if the report brings:
- The Deck version and the operating system.
- The steps to reproduce, with the expected result and the one you got.
- The impact you see, even in a single sentence.
Two requests: do not test against the production infrastructure of the account service, and do not use data from other people to demonstrate the flaw. A report from an environment of your own is enough for us to investigate.