15. Licenses
How the license decides
The license is the only source of permissions: the app has no rules of its own per license type. Each feature of the catalog (34, below) is enabled only if your license includes it; the license server decides what each one includes (through templates created by whoever administers the server). A license can carry a plan (name and version); the app does not show it in the License panel, it only names it in the lock dialog and in the “Your trial ended” notice.
License types
- No license (read-only mode) — you can see your projects, documents, history and earlier chats, but not change anything: no feature is enabled. An amber strip says so and offers Start trial (only if there was never a trial on this machine; if there was, View license appears) and Enter key.
- Free trial — requested from the app with your email and a 6-digit code (see the panel, below). It brings the features of the server’s current trial template and its duration. One trial per person and machine; no card needed.
- Free license — when the trial ends, the app requests the free license by itself from the server, with no email or code, and carries on with it: it validates, renews and respects whatever the server decides (it may not expire, or expire). A dialog (“Your trial ended”) and a system notification tell you, with what it includes and does not include. If the server rejects it (no trial registered for this machine, no free license available, or its template is missing), the notice gives the reason and the app stays in read-only mode. Without a connection there is no error: the app retries when it opens and the panel says “Trial ended. The free license will be requested when there is a connection.”
- Full licenses — not requested from the app: you enter the key you were given. They include the features of their template or those ticked by hand when they were created. Full licenses issued before this version keep all features.
A change to a template only affects licenses issued afterwards; those already issued keep what they had.
Features that depend on the license
| Area | Feature | What it allows |
|---|---|---|
| Projects | Create project (projects:create) |
Create a new project, also in a git repository |
| Projects | Adopt project (projects:adopt) |
Adopt an existing project |
| Projects | Join a project (projects:join) |
Join a shared project |
| Projects | Prepare folder (projects:prepare) |
Prepare a folder without configuration |
| Chat | Chat with Claude Code (chat:claude) |
Chat with the Claude Code agent |
| Chat | Chat with Codex (chat:codex) |
Chat with the Codex agent |
| Chat | Aside chat (chat:aside) |
Aside chat and “Save as request” |
| Chat | Attach documents (chat:attach) |
Attach documents to the chat and evidence in Talk on the side |
| Chat | Multiple chats (chat:multi) |
Multiple chats and per-phase chats |
| Documents | Edit documents (docs:edit) |
Edit and save the .md files in docs/ |
| Backlog | Sprint from the backlog (backlog:sprint) |
Start a sprint from a backlog item |
| Git | Sync with git (git:sync) |
Credentials, push and sync branches |
| Collaboration | Collaborate (collab:use) |
Enable, join, claim roles, turns and sync |
| Collaboration | Manage collaboration (collab:admin) |
Manage people and turn collaboration off |
| Teams | Asteroid team (teams:asteroid) |
Use the Asteroid team |
| Teams | Nebula team (teams:nebula) |
Use the Nebula team |
| Teams | Supernova team (teams:supernova) |
Use the Supernova team |
| Teams | Galaxy team (teams:galaxy) |
Use the Galaxy team |
| Teams | Moon team (teams:moon) |
Use the Moon team |
| Teams | Custom teams (teams:custom) |
Import and use custom or edited teams |
| Teams | Switch team (teams:switch) |
Switch team and go back to a previous one |
| Teams | Update the team (teams:update) |
Update the team version |
| License | Transfer the license (license:transfer) |
Export the license to another machine |
| Usage | Usage panel (usage:view) |
Usage panel |
| Usage | Usage summary (usage:report) |
Usage summary for the retrospective |
| Roles | Models per role (roles:models) |
Choose model and reasoning per role |
| Workflow | Skip a step (workflow:skip) |
Skip to a workflow step |
| Windows | Multiple windows (windows:multi) |
Multiple windows |
| Roles | Create roles (roles:create) |
Create, import and duplicate catalog roles |
| Roles | Edit roles (roles:edit) |
Edit the metadata and document of a catalog role |
| Roles | Delete roles (roles:delete) |
Delete a catalog role |
| Teams | Create teams (teams:create) |
Create a custom team, empty or from a copy |
| Teams | Edit teams (teams:edit) |
Edit a custom team in the editor |
| Teams | Delete teams (teams:delete) |
Delete a custom team |
The last six features (roles and teams) arrived with version 0.4.0. The three role features are used by the Roles tab of Teams and Roles; the three team features, by the AI Teams tab. All of them show as not included in licenses that do not carry them.
What your license does not include is not hidden: the control looks dimmed with a 🔒 and, when you click it, a dialog with the feature’s name says that your license (with its plan, if it has one) does not include it, or that you are in read-only mode, with See the license. Seeing always stays allowed: for example, without chatting with an agent you can still read its earlier messages, and without “Models per role” you see the values without changing them. The app also checks features in its main process, not only on screen.
The License panel
The panel looks the same in Home → License and in the window that opens from the license status in the top bar or from a locked project (there, with × to close it). At the top are the title, a help sentence, the license server and, when licensed, the Validate now button, which checks the license with the server (hovering over it shows when it was last validated). It is organized in cards:
- Notices — grace period, license expired, revoked, on another machine or invalid (with “The app is in read-only mode.”), license in use on another computer, and activation errors, each in its own colored card.
- Main card — the license type (Free trial, Free license or Full license; any other type, as it comes from the server) with its status: No license (with the Read-only mode pill), Licensed, Licensed (offline), License expired, revoked, on another machine or invalid. Below, the holder (name and email) and the expiry date; with an active license, also the days left and a bar with the time remaining (amber when 30 days or fewer remain). On the right: This machine, Machines per key, Offline grace, Expires and Last validated. The panel does not list the features or show the plan.
- Free license line — only after the trial has expired: “Trial ended. Requesting the free license…” or “…will be requested when there is a connection.”
- Enter a license key (no active license) — key in
L-XXXX-XXXX-XXXX-XXXXformat and Activate, or Import license… to activate a license exported from another machine (also by double-clicking the.tac-licensefile). - Or start a free trial (no license) — type your email and click Start free trial; you will receive a 6-digit code that expires within a few minutes. Type it and click Confirm. You can Resend code or Use another email. Disposable emails are not accepted.
- Actions (when licensed), one row per action:
- Move to another machine → Export license… — saves the license to a file to use it on another machine (if your license includes the transfer; otherwise the button is shown with 🔒). The current machine loses it within a few minutes. Only with an active license.
- Deactivate this machine → Deactivate… — frees this machine’s slot; the same row asks for confirmation (Yes, deactivate / No).
Using the license on another machine
- On the current machine: License → Export license….
- On the other machine: Import license… (or double-click the file).
- If the license is still active on the previous machine, the app offers Use the license on this machine, with the number of transfers left today. The other machine loses it within a few minutes and shows a notification (“The license is now in use on…”).
Offline
The license is revalidated periodically with the server. If there is no connection, the app keeps working during a grace period (it tells you how many days are left).
Project blocked by the license
If you open a project whose team your license does not allow, “This team is not available with your license” appears, with the reason:
- Galaxy / Moon — the team belongs to a category your license does not include.
- Modified team — the project’s team was edited compared with the app’s original. It shows what changed (files changed, added and removed).
- Unrecognized team — it is not one of the app’s teams, or its signature is not recognized.
- Reserved category — an unsigned team declares one of the app’s categories; no license unlocks it.
Options: Activate license and, depending on the case, Restore the original team (copies the app’s team over the project again; if it had been modified, the changed files are first saved in docs/team-proposals/ so the improvement is not lost). The project’s documents and code are not touched.