flightopsDocumentation
AI assistance

AI connections and credentials

3 min readdocs/ai/connections.md (source repository)

Check a connection

bash
flightops ai status
flightops ai test

status reads local configuration. test sends a synthetic greeting to the selected provider, without project files, and may incur usage. You can test a specific saved connection with flightops ai test CONNECTION_ID.

In the terminal, press A and use p to propose switching between saved connections. Review and approve the switch before sending a new question.

Store a key

Run flightops ai setup. For OpenAI or Anthropic, enter the key at the masked prompt. Flightops asks the provider for its model list, shows numbered assistant candidates, and saves the model you select. This read-only request sends the key to the chosen provider without project files. It does not run a completion or prove that the selected model supports this assistant. Use flightops ai test for that separate check.

Flightops saves the key in the OS credential store when available. The connection file holds a reference to the credential, not the plaintext key.

Without an OS credential store, the key is session-only and the wizard opens the app immediately in the same process. That key lasts only for that process. For a persistent environment-variable reference, use advanced local/custom setup; the variable must be available when you start Flightops.

Do not put API keys in prompts, project files, or evidence attachments.

Disconnect

bash
flightops ai disconnect

This removes the selected Flightops connection. Use flightops ai disconnect CONNECTION_ID to choose one explicitly. It does not revoke the key at the provider; use the provider account to revoke it if needed.

ChatGPT account route

The ChatGPT account route is a preview. It uses the pinned official Codex runtime and Linux bubblewrap for isolated text turns. If Flightops reports that bubblewrap is missing, install it with sudo apt install bubblewrap. Use flightops ai login for browser sign-in, then flightops ai test for a bounded synthetic assistant exchange. Login alone does not verify an assistant turn. This route explains reviewed text and attached evidence; native Codex tools remain disabled.

Optional Jev credentials

The Jev selector uses a separate TypeSafe key and does not replace your conversational connection.

bash
flightops ai jev setup
flightops ai jev status
flightops ai jev disconnect

Setup saves a masked key in the OS credential store. If that store is unavailable, use flightops ai jev setup --key-env TYPESAFE_API_KEY with the key already set in that shell. This route has no session-only wizard fallback. Status checks configuration only; an explicitly approved select-evidence request exercises Jev. flightops ai test continues to test the conversational connection.

Disconnecting Jev removes its managed key reference. Environment values and provider-side key revocation remain under your control. See the Jev guide for the full flow and separate provider reviews.

Troubleshooting

SymptomNext step
Connection saved, but requests failRun flightops ai test; check the model ID, provider access, endpoint, and network.
Key missing after setupA session-only key cannot be reused by another process. Run setup again and use the app it opens, or configure persistent credentials.
Nothing happens after typing a promptReview the destination and context. In the panel use y; in ai ask or select-evidence, type the displayed digest.
Selected evidence cannot be attachedSelect a supported retained result. A screen selection alone is not a saved evidence record.
ChatGPT assistant reports sign-in requiredRun flightops ai login, then flightops ai test.
ChatGPT assistant reports missing text isolationInstall Linux bubblewrap, then retry flightops ai test.
Jev command is unrecognizedCheck command -v flightops and flightops ai --help. The command must resolve to the beta install in ~/.local/bin; see installation.
Jev returns unavailable or insufficient evidenceCheck the separate key and original sources. Unavailable is a failed request; insufficient evidence is an advisory abstention. Neither is a diagnostic verdict.
Request cancelled, but usage appearsCancellation cannot undo a provider request already submitted.

Return to AI setup or using the assistant.