Install on Windows
- Download the installer. Sign in on the Download page. Downloading needs an active Pro plan.
- Run it. The installer isn't code-signed yet, so Windows SmartScreen may warn you. Select More info, then Run anyway.
- Sign in with your Technically Not account (see below).
- Open a project folder. Everything reads and writes on your own PC.
- Add a terminal panel and pick an agent CLI. If it isn't signed in yet, the panel runs its sign-in first.
On Linux? See Install on Linux.
Install on Linux
Technically Not runs on Linux as an AppImage or a .deb, for x64 and arm64. Download it from the Download page (signed in, with an active Pro plan), the same as on Windows.
- .deb (Ubuntu, Debian and relatives): install the file you downloaded, for example
sudo apt install ./TechnicallyNot.ai-*.deb, then start Technically Not from your app menu. - AppImage (most other distributions): make it runnable with
chmod +x TechnicallyNot.ai-*.AppImage, then open it. It needslibfuse2(libfuse2t64on Ubuntu 24.04). - Sign in, open a project folder and add a terminal panel, as in the Windows steps above.
Your shell
Terminal panels open your own login shell. bash and zsh work fully; in fish the
tnaicommands may not be found first.Agent CLIs are found
CLIs installed in
~/.local/bin, through nvm or in~/.npm-globalare found even when you start the app from the menu.Updates
Installing a .deb, including a newer one, may ask for your password, since system packages need it.
Sign in and plans
You make your account on the website, then sign in to the app with Google or with your email and password (plus an authenticator code, if you turned one on).
Pro
$15/month or $144/year. The Founder price, $99/year, is sold until December 25, 2026 and kept for as long as it renews. No free plan and no trial; the live demo shows the real interface first.
Up to 3 computers
Each account works on three computers. On a fourth, the sign-in lists your computers with Sign out and continue.
Works offline for a while
The app confirms your plan when it can reach our server. It keeps working for up to 7 days without that.
Agent CLIs
Technically Not runs the agent CLIs installed on your PC. It finds them on your PATH, shows each version and which account is signed in (Settings › Accounts).
| CLI | Support |
|---|---|
| Claude Code | Fullest: live steps, task clock and tokens, results, sub-agent rows, several accounts, API-key accounts |
| Codex | Fullest: task clock and results from its own records, several accounts, API-key accounts |
| OpenCode | Fewer features. Can lead sub-agents. Runs on its free built-in models without a provider |
| Cursor Agent | Fewer features. Works as a sub-agent, can't lead. One sign-in per PC |
| Gemini CLI, Droid | Experimental. Detected as "Installed"; one account |
Signing in a CLI: the sign-in dialog runs the CLI's own login in a terminal panel, and the provider's page opens in your browser. Technically Not never stores your passwords or sign-in tokens.
CLI updates: when a newer Claude Code, Codex, Gemini CLI or OpenCode is out, the bell says so. Its Update button runs the update in a terminal panel and resumes the agents it had to pause.
Accounts and usage limits
Several accounts
Claude Code and Codex can hold any number of accounts, each with its own settings folder. Pick one with Use for new sessions; its plan (Pro, Max, Plus…) shows as a tag.
API-key accounts
On the Claude Code and Codex cards, + Add an API key · pay per use runs that CLI on your own provider key. The key is encrypted on your computer by the system's secure store and never sent to our server. Only that account's terminal panels get it, and after saving you only see its last 4 characters.
One account only
Cursor Agent keeps one sign-in per computer (Switch account signs out and in). OpenCode, Gemini CLI and Droid use one account.
When an agent hits its usage limit
The agent's card shows the limit message with Switch to <account>. Switching restarts the agent on that account and resumes its conversation when the CLI can; it tells you whether it resumed or started fresh.
Settings › Usage shows each plan window's % used and reset time for Claude Code and Codex, plus your token use by day, model and project.
Terminal panels and workspaces
Every agent runs in a terminal panel: a real terminal running the CLI itself, or a plain shell (PowerShell on Windows, your own shell on Linux), in your project folder.
Workspaces
Named tabs on the Terminal page, up to 12 panels each. A full workspace opens the next one. Each project keeps its own workspaces.
Adding one
+ Terminal adds an empty panel; + Add connection picks the agent CLI or PowerShell. The panel gets a name you can change with a double-click or ✎.
Working in one
Double-click a header to maximize it (Esc restores). A− / A+ change the font. Ctrl+C with a selection copies, Ctrl+V pastes, right-click does either.
After a restart
If panels were running when you closed the app, it asks once: Start clean (no agents) or Restore agents and conversations. A restored panel shows its saved output and waits for Enter; nothing restarts on its own. Claude Code and Codex pick up their conversations again.
The composer
The prompt box at the bottom of the window. Enter sends your text to an agent:
- The selected agent, if you clicked its card (it gets a green ring).
- Otherwise the only running agent. With several running and none picked, it asks.
- With nothing running, it starts a new agent for the task, usually Claude Code.
The hint row under the box always shows where Enter will go.
+ New agent
Toggle it, or press Ctrl+Enter, to give the task to a brand-new agent in a new panel.
Agent · Model · Effort
Pick which agent, model and effort level. For a running agent this types the CLI's own
/modelor/effort.@mentions
Type
@to send to a specific running agent, or to point at a file or folder.Attachments
Upload, paste or drop up to 8 files, 20 MB each. Long pastes fold into a short token.
Voice prompts
- Hold your voice key (Ctrl+Space by default) or the mic button, and talk.
- Let go. Your words appear at the cursor: in the composer, or straight in the terminal panel you're working in.
- Send it when you're ready; Esc cancels.
On your PC
Speech is transcribed on your computer and the audio never leaves it. The speech model downloads once, about 150 MB.
Unlimited
No minutes, word caps or credits. Up to 5 minutes per hold, as many holds as you like. English speech.
Any key
Change the key in Settings › Appearance › Keyboard. Say "new agent, …" to hand a task to a fresh agent; on pages without the composer, that sends it right away.
Overview: the agent tree
Overview shows every terminal panel of a workspace as a card, in the same order as on the Terminal page, with the File Repository on the right. A card shows what the agent is doing now, the files it touches, its sub-agents, a task clock (Claude Code and Codex) and its Result.
Status colors
- WorkingGreen, pulsing. The agent is busy.
- Needs youAmber, pulsing. A permission, a question or a decision waits for you.
- Waiting on agentsPurple. It waits for its own sub-agents.
- ErrorRed. The process stopped with an error.
- Idle or exitedGray. Nothing running.
Click a card
It becomes the composer's target and opens on the Agents page.
Intervene
Interrupts the agent and sends your note as Fix now or Add after current step.
Pop out
⧉ moves an agent's live card into its own window, for another monitor. It keeps updating while the app is minimized.
Zoom
Ctrl + mouse wheel over the tree zooms it (50–200 %); Ctrl+0 resets.
Agents page
Every agent across your workspaces on the left. On the right, the selected agent's live terminal, which you can type in, next to its Result, status, current task, files, skills and sub-agents. Actions: make it the composer target, Intervene, Open in Terminal, Stop, Start, and Close for a stopped agent (its conversation stays available to bring back).
Files and changes
File Repository
Your project folder, with search across the whole project. Files an agent is touching get its name tag with a pulsing dot.
Editor
Tabs, syntax colors and Save (Ctrl+S), the only thing that writes. It asks before overwriting a file that changed on disk, then checks the saved bytes.
Changes page
Git status, diffs, stage, commit, branches, fetch, pull and push (never forced). With the GitHub CLI signed in, it also shows pull requests, issues and CI runs, read only.
Live preview
The Live preview page runs your project's dev script (from package.json) with Start and Stop, or shows an address you type in. Only localhost addresses are shown. Device frames for Desktop, Tablet and Phone use real sizes, and Phone and Tablet act like touch devices.
tnai preview http://localhost:5173 desktopAgents working together
Every panel gets the tnai command, so agents in the same open project can find and talk to each other. One asks for a review, another finds the bug, a third fixes it, with no copy-pasting.
| Command | What it does |
|---|---|
tnai agents | Lists the project's agents with their status. |
tnai send NAME message | Types a message into another agent. A closed agent is brought back with its conversation first. |
tnai read NAME | Shows another agent's recent output. |
tnai context | What other agents finished, known issues and next steps. |
tnai lock / unlock / locks | File locks (below). |
tnai preview URL | Shows a local page in Live preview. |
Ctrl+K lists these commands too; picking one puts it in the composer.
Sub-agents
A lead agent can hand parts of a task to sub-agents. Leads can be Claude Code, Codex or OpenCode; sub-agents can also be Cursor Agent. Each sub-agent runs in its own terminal panel in the lead's workspace, sits right after its lead on Overview, and its final answer goes back to the lead. Limits live in Settings › Agents › Delegation limits.
File locks
Claude Code
Takes the lock by itself. An edit of a file another agent holds is refused, with the holder's name and what to do.
Other CLIs
Are told to run
tnai lock FILEbefore editing. That works when the agent follows the instruction.Ends by itself
On
tnai unlock, when the holder's panel closes, or 20 minutes after its last edit of that file.
Project context
Every finished task is saved as a short entry (what it did, found, changed, what remains) that other agents in the project can read. The Project context panel on Overview lists decisions waiting for you, known issues and next steps; any item can go to the composer. The bell collects finished results and next steps.
Settings and updates
Settings has Accounts, Agents, Files, Appearance, Updates and Usage. Appearance has Light, Dark and Match system themes and your keyboard keys.
Keyboard shortcuts
| Keys | What it does |
|---|---|
| ? or Ctrl+/ | List every shortcut |
| Ctrl+K | Command palette: pages, projects, files, actions, tnai commands |
| Ctrl+1–7 | Go to a page |
| Ctrl+B | Collapse or expand the left nav |
| Ctrl+Enter | Turn + New agent on or off: the next prompt starts a fresh agent |
| Hold Ctrl+Space | Voice prompt (changeable); Esc cancels |
| Ctrl+Shift+J | Jump to the agent that has needed you longest |
| Ctrl+Shift+Alt+S | Snapshot: drag over the screen to copy a picture, then paste it into a prompt or terminal |
| Ctrl+S | Save the open file |
| F2 | Rename the workspace |
Troubleshooting
Windows warns about the installer
It isn't code-signed yet. Select More info, then Run anyway.
My agent CLI isn't listed
Install it natively on Windows (not inside WSL) and check it runs in a new PowerShell window, for example with claude --version. Then open Settings › Accounts and choose Check again.
An agent says "Needs you"
It's stopped on a permission, a question or a decision. Answer it in its terminal panel or on the card above the composer. Ctrl+Shift+J takes you there.
An agent is heading the wrong way
Use Intervene on its card to send Fix now, or Stop it on the Agents page.
An agent hit its usage limit
Switch it to another account from its card, or let auto-continue pick up after the reset. See Accounts and usage limits.
The app is locked
The lock names the reason: no active plan, a failed payment, signed out, more than 7 days without reaching our server, or your PC clock more than 10 minutes behind. Use its button, or Check subscription in the account menu once you're back online.
"Too many computers" when signing in
An account works on 3 computers. Pick one in the list and choose Sign out and continue.
Linux: the AppImage won't start
Install libfuse2 (libfuse2t64 on Ubuntu 24.04), or use the .deb.
Agents don't work in the browser
That's expected: agents, terminal panels and Live preview need the desktop app. The browser version and the live demo are for looking around.
Your data
Your code stays on your PC
Agents run your own CLIs locally. Our server stores only your account and subscription, plus the name and last use of each signed-in computer.
Voice stays on your PC
Speech is transcribed on your computer, and recordings aren't kept.

