Commands
connectors list / get
list gives one row per connector. get prints config with secrets masked.
connectors create
--provider <p>(required) — the external system. Supported:tavily,brave(extending).--name <n>(required) — display name.--api-key <key>(required) — the API key. Use?for a masked prompt,-to read from stdin, or pass the literal (with a shell-history warning).
? or stdin over passing the literal — literal API keys land in your shell history.
connectors update
--set-name <n>— new display name.--rotate-api-key <key>— replace the stored key. Same input modes as create (?,-, literal).
connectors delete
connectors invoke
connectors get for the list).
Flags:
<id>— connector.<operation>— operation name (e.g.search,list_channels).--arg KEY=VALUE— one arg per flag, or:--json <json>— full args as JSON.
- Smoke-test that a rotated key works:
nora connectors invoke c_tavily search --arg query=test. - Ad-hoc data pull without wiring into a Flow.
Recipes
Rotate credentials in a script
Verify all connectors still work
ping is illustrative; check what each provider supports.)
Migrate a connector to another workspace
Connectors vs. secrets
- Connectors are typed integrations for specific systems (Tavily, Brave, …). The connector knows the API shape.
- Secrets are opaque string values (used in Tool headers, Trigger auth, DB URLs). No typed shape.
secrets:// header. For a well-known provider (search, embeddings, etc.), use a Connector.
Both are workspace-scoped and encrypted at rest.