Developers / Terminal
Dyadic Terminal
Your Dyadic Workspace in a terminal. Talk to Iris, inspect work and files, and explore local data.
Install The Preview
Terminal is currently a private preview. Use a provided build from your Dyadic repository or build from source; there is no public installer feed yet. Windows x64 and Linux x64/glibc have native test receipts. The macOS ARM64 build still needs native acceptance.
Download the matching executable and its checksums.json from the same build. Compare SHA-256 before running it. Put it in a folder on your PATH as dyadic.exe on Windows or dyadic on Linux. The standalone build includes its runtime and parser assets.
Get-FileHash .\dyadic-windows-x64.exe -Algorithm SHA256
.\dyadic-windows-x64.exe doctor --jsoncd terminal
bun install --frozen-lockfile
bun run check
bun tools/build.tsSource builds currently use Bun 1.4.4. Select the executable under terminal/dist/ for your platform. To start an existing desktop installation on Windows:
& "$env:LOCALAPPDATA\Dyadic\Terminal\dyadic.cmd"In Windows Command Prompt, including a default Windows SSH session in Termius, use "%LOCALAPPDATA%\Dyadic\Terminal\dyadic.cmd". Type powershell there to switch shells. If that SSH logon cannot unlock the credential store, append auth login --ephemeral and approve the displayed browser code for this session.
Sign In
dyadic auth login
dyadic tuiOpen F5 Settings → Sign In inside Terminal and choose This Session Only or Save On This Device. Open the browser address shown, enter the short code and review its requested access. Approval uses your normal Dyadic sign-in and passkey. Web Settings → Connected Terminals shows authorizations and revocation; Computers opens the separate runner pairing controls.
Saved credentials use the OS credential store. When it is unavailable, choose This Session Only or run dyadic tui --ephemeral for temporary in-process access. Session-only access stays in that process, so quitting requires sign-in again; it does not erase a saved desktop credential. Credentials are never silently saved in plaintext. Workspace sign-in is separate from developer API keys and runner keys.
For persistent Windows SSH access, choose Save For Windows SSH or run dyadic auth login --credential-store windows-dpapi once, then start dyadic normally. This optional adapter requires installed Git Credential Manager and encrypts credentials for the Windows account using DPAPI. It probes storage before asking for browser approval, changes no global Git settings, and retains the same server expiry and revocation. Keep using the same Windows account and profile. Native Termius acceptance remains separate from the Windows encrypted-store test.
Connected Terminals shows each authorization's grant expiry and the client's declared storage choice. Older clients show storage as unknown. This list does not establish that a terminal is online, and a session-only client's exit does not notify the server to revoke its grant. Access tokens still expire after ten minutes; refresh credentials cannot outlive the thirty-day grant.
Use profiles for separate accounts or servers. Run dyadic profiles --help for supported profile commands and dyadic doctor --json for build and environment information.
Cloud And Your Computer
Dyadic Cloud is the hosted Workspace. A connected computer is your own machine running a paired Dyadic Runner. The Terminal app is a client; opening it does not itself give Iris access to your shell or Docker.
Use /target to choose a requested execution destination and /computers pair for browser pairing instructions. Check each action's recorded computer, folder and command. Computer availability, project scope, plugin switches and approvals still apply.
For example, ask Iris to “write a web server and deploy it with Docker on my paired computer.” Available skills can guide that work and machine tools can build or start Docker through the runner. A selected destination is a request, not evidence that deployment happened. Inspect the command results and service checks.
Skills, Plugins And References
Use @ to choose an enabled skill or plugin, and # to choose a chat, project or library. You can also use /mention and /reference. Reference previews use the same server context selection as the browser. Requested context and recorded inclusion remain different.
Manage installation and account switches in the existing Store. A mention does not install a package or grant new tool permissions. Skills are instructions and resources; plugins expose tool families. Supporting resources for independent delegated tasks remain subject to the current resource-access limitation.
Local Files And Data
dyadic view notes.md
dyadic view research.csv
dyadic view research.csv --aggregate value --jsonLocal viewing works offline. CSV/JSON tables support columns, sorting, filters, grouping, aggregates, selected-row export and charts. Exact values and source identities remain in the table and inspector; chart positions are approximate. Nulls, sampling, missing evidence and unknown costs are labeled.
Troubleshooting
- Old appearance: quit with Ctrl+Q and start the installed launcher again. An already-running executable stays on its original build.
- Missing choices or permissions: refresh, check the account's published models and terminal scopes, then inspect the specific server error.
- Clipboard unavailable: use the host terminal's paste shortcut or export the selected object. Model output never changes your clipboard automatically.
- Small or limited terminals: use
dyadic plain,--ascii,--no-coloror--reduced-motion. NO_COLOR is respected. Native screen-reader acceptance remains open. - A disconnected run is not automatically replayed. Inspect its recorded state; an uncertain mutation receipt is not permission to submit the action again.
CLI Command Reference
Generated from the shared command registry. CLI and TUI use the same server owners. ask creates a new chat unless --chat is supplied. Piped input is read only with --stdin. Ctrl+C detaches from runs watch; for ask it requests cancellation and reports the observed result.
| Command | Arguments | Effect | Purpose |
|---|---|---|---|
| dyadic tui | — | local-read | Open The Workbench |
| dyadic inline | — | local-read | Open Inline Mode |
| dyadic plain | — | local-read | Use Linear Output |
| dyadic auth login | [--ephemeral] [--credential-store <store>] | write | Browser-Approved Device Sign-In |
| dyadic auth logout | — | write | Revoke And Remove The Current Credential |
| dyadic profiles list | — | local-read | List Profiles |
| dyadic profiles add | <name> --origin <url> | local-write | Create A Profile |
| dyadic profiles use | <name> | local-write | Select A Profile |
| dyadic doctor | — | local-read | Inspect Local Runtime And Configuration |
| dyadic completion | <powershell / bash / zsh> | local-read | Generate Shell Completions |
| dyadic ask | <prompt> [--chat id] [--stdin] | run | Start An Iris Turn; New Conversation By Default |
| dyadic runs watch | <run> | read | Watch Events; Interrupt Detaches |
| dyadic files download | --path <path> --revision <id> --sha256 <hash> --out <file> | read | Download Exact Recorded Bytes |
| dyadic files edit | <chat> --path <path> | write | Edit Externally With Conflict Detection |
| dyadic files upload | <local-file> --yes | write | Upload A Bounded Attachment Through Its Existing Owner |
| dyadic files get | --path <path> --revision <id> --sha256 <hash> --out <file> | read | Download Exact Recorded Bytes |
| dyadic files put | <local-file> --yes | write | Upload A Workspace Attachment |
| dyadic files view | --path <path> --revision <id> --sha256 <hash> | read | Preview Exact Workspace Bytes |
| dyadic recordings export | <recording> --out <file> | read | Export Authorized Recording Metadata |
| dyadic computers pair | — | local-read | Show The Browser Pairing Handoff |
| dyadic open | <account / apps / voice / workspace / chat / recording> [id] | local-read | Show An Explicit Browser Handoff |
| dyadic view | <file> [--plain] [--sort column] [--chart kind] | local-read | Inspect Local Files Without Network Or Authentication |
| dyadic help | [command] | local-read | Show Commands And Key Bindings |
| dyadic chats list | [--q text] | read | List Conversations |
| dyadic chats get | <chat> | read | Read A Conversation |
| dyadic chats create | --body <json> | write | Create A Conversation |
| dyadic chats update | <chat> --body <json> | write | Update A Conversation |
| dyadic runs list | — | read | List Retained Live Runs |
| dyadic runs show | <run> | read | Inspect A Run And Its Persisted Evidence |
| dyadic models list | — | read | Read Published Workspace Model Choices |
| dyadic runs stop | <run> --yes | cancel | Request Run Cancellation |
| dyadic runs reconcile | <run> | read | Inspect Available Persisted Evidence |
| dyadic runs receipt | <key> | read | Resolve An Ambiguous Mutation |
| dyadic files list | [--chat id] [--q text] | read | Search Workspace Files |
| dyadic files history | --path <path> [--chat id] | read | Inspect Recorded File Versions |
| dyadic files read | <chat> --path <path> | read | Read An Editable Workspace File |
| dyadic files write | <chat> --body <json> --yes | write | Save Against Its Reviewed Version |
| dyadic files diff | --before <hash> --after <hash> [--path path] | read | Compare Retained File Bytes |
| dyadic work get | <chat> | read | Read Current Accepted Work |
| dyadic work prepare | <chat> [--body json] --yes | write | Prepare Current Work Choices |
| dyadic work accept | <chat> --body <reviewed-json> --yes | write | Accept The Reviewed Manifest |
| dyadic work snapshots | <chat> | read | Read Context Snapshot History |
| dyadic work review | <snapshot> --body <json> --yes | write | Review Again Using Current Choices |
| dyadic work checks | <message> | read | Read Exact Native Check Subjects |
| dyadic work reverify | <message> --body <json> --yes | run | Run Native Re-Verification |
| dyadic plans list | — | read | List Plans |
| dyadic plans get | <plan> | read | Read A Plan |
| dyadic plans create | --body <json> --yes | write | Create A Plan |
| dyadic plans revise | <plan> --body <json> --yes | write | Revise Against The Current Plan Version |
| dyadic plans approve | <plan> --body <json> --yes | approval | Approve A Specific Plan Version |
| dyadic plans cancel | <plan> --yes | cancel | Cancel A Plan |
| dyadic plans events | <plan> | read | Read Recorded Plan Events |
| dyadic context targets | — | read | List Available Context Targets |
| dyadic context preview | --body <json> --yes | write | Preview Server Context Assembly |
| dyadic memory get | — | read | Read Saved Memory |
| dyadic memory add | --body <json> --yes | write | Save An Explicit Memory |
| dyadic memory update | <fact> --body <json> --yes | write | Edit A Memory |
| dyadic memory delete | <fact> --yes | write | Forget A Memory |
| dyadic memory summary | --body <json> --yes | write | Save Memory Summary |
| dyadic automations list | — | read | List Automations |
| dyadic automations update | <automation> --body <json> --yes | write | Update Or Pause An Automation |
| dyadic automations run | <automation> --yes | run | Run An Automation Now |
| dyadic automations delete | <automation> --yes | write | Delete An Automation |
| dyadic computers list | — | read | List Connected Computers And Capabilities |
| dyadic computers job | <job> | read | Read Bounded Output And Stop Evidence |
| dyadic computers stop | <job> --yes | cancel | Request Job-Owned Process Cancellation |
| dyadic computers update | <computer> --body <json> --yes | write | Update Existing Computer Settings |
| dyadic computers unpair | <computer> --yes | write | Revoke A Computer |
| dyadic recordings list | — | read | List Authorized Recordings |
| dyadic recordings get | <recording> | read | Inspect A Recording |
| dyadic recordings events | <recording> | read | Read Recorded Events |
| dyadic recordings verify | <recording> | read | Verify Recording Integrity |
| dyadic approvals get | <approval> | read | Read An Exact Action Request |
| dyadic approvals decide | <approval> --body <json> --yes | approval | Respond To The Reviewed Action |
| dyadic inputs answer | <input> --body <json> --yes | approval | Answer A Requested Input |
| dyadic activity list | — | read | Read Recorded Activity |
| dyadic auth sessions | — | read | List Native Sessions |
| dyadic auth revoke | <session> --yes | write | Revoke Native Access |
Use --json or --jsonl for versioned machine output. Exit codes: 0 success, 1 failure, 3 action needed, 4 authentication/scope denied, 5 conflict. Shell completions: dyadic completion powershell, bash or zsh.