dyadic

Developers / Terminal

Dyadic Terminal

Your Dyadic Workspace in a terminal. Talk to Iris, inspect work and files, and explore local data.

Developers / Terminal

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.

Windows: Check A Download
Get-FileHash .\dyadic-windows-x64.exe -Algorithm SHA256
.\dyadic-windows-x64.exe doctor --json
Build From The Repository
cd terminal
bun install --frozen-lockfile
bun run check
bun tools/build.ts

Source builds currently use Bun 1.4.4. Select the executable under terminal/dist/ for your platform. To start an existing desktop installation on Windows:

Windows: Start An Installed Preview
& "$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

Connect And Open
dyadic auth login
dyadic tui

Open 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

Inspect Without Sign-In Or Inference
dyadic view notes.md
dyadic view research.csv
dyadic view research.csv --aggregate value --json

Local 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

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.

CommandArgumentsEffectPurpose
dyadic tui—local-readOpen The Workbench
dyadic inline—local-readOpen Inline Mode
dyadic plain—local-readUse Linear Output
dyadic auth login[--ephemeral] [--credential-store <store>]writeBrowser-Approved Device Sign-In
dyadic auth logout—writeRevoke And Remove The Current Credential
dyadic profiles list—local-readList Profiles
dyadic profiles add<name> --origin <url>local-writeCreate A Profile
dyadic profiles use<name>local-writeSelect A Profile
dyadic doctor—local-readInspect Local Runtime And Configuration
dyadic completion<powershell / bash / zsh>local-readGenerate Shell Completions
dyadic ask<prompt> [--chat id] [--stdin]runStart An Iris Turn; New Conversation By Default
dyadic runs watch<run>readWatch Events; Interrupt Detaches
dyadic files download--path <path> --revision <id> --sha256 <hash> --out <file>readDownload Exact Recorded Bytes
dyadic files edit<chat> --path <path>writeEdit Externally With Conflict Detection
dyadic files upload<local-file> --yeswriteUpload A Bounded Attachment Through Its Existing Owner
dyadic files get--path <path> --revision <id> --sha256 <hash> --out <file>readDownload Exact Recorded Bytes
dyadic files put<local-file> --yeswriteUpload A Workspace Attachment
dyadic files view--path <path> --revision <id> --sha256 <hash>readPreview Exact Workspace Bytes
dyadic recordings export<recording> --out <file>readExport Authorized Recording Metadata
dyadic computers pair—local-readShow The Browser Pairing Handoff
dyadic open<account / apps / voice / workspace / chat / recording> [id]local-readShow An Explicit Browser Handoff
dyadic view<file> [--plain] [--sort column] [--chart kind]local-readInspect Local Files Without Network Or Authentication
dyadic help[command]local-readShow Commands And Key Bindings
dyadic chats list[--q text]readList Conversations
dyadic chats get<chat>readRead A Conversation
dyadic chats create--body <json>writeCreate A Conversation
dyadic chats update<chat> --body <json>writeUpdate A Conversation
dyadic runs list—readList Retained Live Runs
dyadic runs show<run>readInspect A Run And Its Persisted Evidence
dyadic models list—readRead Published Workspace Model Choices
dyadic runs stop<run> --yescancelRequest Run Cancellation
dyadic runs reconcile<run>readInspect Available Persisted Evidence
dyadic runs receipt<key>readResolve An Ambiguous Mutation
dyadic files list[--chat id] [--q text]readSearch Workspace Files
dyadic files history--path <path> [--chat id]readInspect Recorded File Versions
dyadic files read<chat> --path <path>readRead An Editable Workspace File
dyadic files write<chat> --body <json> --yeswriteSave Against Its Reviewed Version
dyadic files diff--before <hash> --after <hash> [--path path]readCompare Retained File Bytes
dyadic work get<chat>readRead Current Accepted Work
dyadic work prepare<chat> [--body json] --yeswritePrepare Current Work Choices
dyadic work accept<chat> --body <reviewed-json> --yeswriteAccept The Reviewed Manifest
dyadic work snapshots<chat>readRead Context Snapshot History
dyadic work review<snapshot> --body <json> --yeswriteReview Again Using Current Choices
dyadic work checks<message>readRead Exact Native Check Subjects
dyadic work reverify<message> --body <json> --yesrunRun Native Re-Verification
dyadic plans list—readList Plans
dyadic plans get<plan>readRead A Plan
dyadic plans create--body <json> --yeswriteCreate A Plan
dyadic plans revise<plan> --body <json> --yeswriteRevise Against The Current Plan Version
dyadic plans approve<plan> --body <json> --yesapprovalApprove A Specific Plan Version
dyadic plans cancel<plan> --yescancelCancel A Plan
dyadic plans events<plan>readRead Recorded Plan Events
dyadic context targets—readList Available Context Targets
dyadic context preview--body <json> --yeswritePreview Server Context Assembly
dyadic memory get—readRead Saved Memory
dyadic memory add--body <json> --yeswriteSave An Explicit Memory
dyadic memory update<fact> --body <json> --yeswriteEdit A Memory
dyadic memory delete<fact> --yeswriteForget A Memory
dyadic memory summary--body <json> --yeswriteSave Memory Summary
dyadic automations list—readList Automations
dyadic automations update<automation> --body <json> --yeswriteUpdate Or Pause An Automation
dyadic automations run<automation> --yesrunRun An Automation Now
dyadic automations delete<automation> --yeswriteDelete An Automation
dyadic computers list—readList Connected Computers And Capabilities
dyadic computers job<job>readRead Bounded Output And Stop Evidence
dyadic computers stop<job> --yescancelRequest Job-Owned Process Cancellation
dyadic computers update<computer> --body <json> --yeswriteUpdate Existing Computer Settings
dyadic computers unpair<computer> --yeswriteRevoke A Computer
dyadic recordings list—readList Authorized Recordings
dyadic recordings get<recording>readInspect A Recording
dyadic recordings events<recording>readRead Recorded Events
dyadic recordings verify<recording>readVerify Recording Integrity
dyadic approvals get<approval>readRead An Exact Action Request
dyadic approvals decide<approval> --body <json> --yesapprovalRespond To The Reviewed Action
dyadic inputs answer<input> --body <json> --yesapprovalAnswer A Requested Input
dyadic activity list—readRead Recorded Activity
dyadic auth sessions—readList Native Sessions
dyadic auth revoke<session> --yeswriteRevoke 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.