Bring your own models
Duct no longer decides which model runs your work. Pick a tier once, plug in OpenRouter, or point the OpenAI slot at the subscription you already pay for.
Models & agents
- Three tiers, one job map. Choose a Heavy, Standard and Light model in settings. Every agent job picks the tier it needs, so you are not selecting a model feature by feature.
- OpenRouter is a first-class provider. One key, and the tier map you already set applies to everything behind it.
- A ChatGPT subscription can drive the OpenAI slot — useful if you pay for the seat but not the API.
- Hosted runs use your keys, not ours. The hosted deployment stopped quietly falling back to Duct’s own provider credentials.
Workspace
- A command palette. One shortcut to jump between projects, connectors and agents — and you can bind your own shortcuts to the actions you repeat.
- Insights opens on what changed instead of an empty prompt box waiting for you to think of a question.
- Duct remembers the project you were in instead of resetting to the first one on every visit.
- Named controls, announced states, visible focus across the app, for anyone driving Duct by keyboard or screen reader.
Connectors
- The connector list now matches what a project can actually reach. Duct asks the server, rather than inferring availability from whichever keys happen to be saved.
- Every connected source is counted — the “sources connected” figure had been counting two of them.
Desktop
- Credentials a self-host build stores on your machine are encrypted with a key the app mints into your OS keychain.
- Connecting through the browser reports success as success — it had been calling a completed connection expired.