Skip to content

[Feature]: Sign-in window for cookie-only providers when App-Bound Encryption blocks browser import #988

Open

Description

@marcus7989

Existing issues

Problem or use case

About 20 providers only sign in through a browser cookie (for example Perplexity, Manus, Ollama, Mistral, Notion, OpenCode, T3 Chat, Qwen). On Windows, Chrome and Edge store those cookies with App-Bound Encryption. As docs/COOKIES.md says, CodexBar does not bypass it, and we agree that it should not.

In practice that leaves Chrome or Edge users with two options: copy the Cookie header out of DevTools by hand, or sign in again in Firefox. Many users of our desk display (VibeTV, background in #640) cannot do the first and do not use Firefox. These providers then stay "signed out" with no way forward.

Proposed solution

A sign-in window owned by Win-CodexBar:

  1. "Sign in" for a cookie provider opens a WebView2 window on the provider's login page, in a profile that belongs to CodexBar.
  2. The user signs in normally, including 2FA or SSO.
  3. CodexBar reads the session cookie for the provider's domain from its own WebView2 cookie store. That is not App-Bound, because CodexBar owns the profile. It saves the cookie as the provider's manual cookie (manual_cookies.json, DPAPI via secure_file) and closes the window.
  4. Expiry works as today: when the site rejects the cookie, the provider reports signed out and the same window can be opened again.

For embedding apps, a CLI entry point that opens this window and returns when the cookie is saved or the user closes the window would be very useful, ideally under the same config login --provider <id> name as the CLI request for Copilot, Grok and Kiro (#987).

Affected area

  • Settings UI
  • CLI
  • Provider-specific behavior
  • Config file / settings persistence

Alternatives considered

  • Bypassing App-Bound Encryption: rejected, same as your position in COOKIES.md.
  • Manual cookie paste: works, but is too hard for most users.
  • A sign-in window in our own app: we would rather not handle provider sessions outside CodexBar.

Additional context

This is a request, not a PR. We would like to know first whether you want this and in which shape (desktop only, or also from the CLI).

Activity

  1. Finesssee commented on Oct 23, 2026

    @Finesssee
    Collaborator

    Thanks for the clear write-up. We agree with the direction: CodexBar won't bypass App-Bound Encryption, but a sign-in that happens inside CodexBar's own WebView2 isn't a bypass.

    Our current plan, still open to change:

    • Opt-in per provider. Each provider gets a small spec: login URL, the cookie URL, and the cookie names that mean "signed in". We'd start with a few single-cookie providers and add more once the flow is proven.
    • No IPC. The window has no access to the app's commands, so the remote page can't reach CodexBar.
    • Private session. The window uses a private session, so nothing stays on disk except the saved manual cookie (DPAPI, as today). When the cookie expires, the provider shows signed out, and you sign in again from the same button.
    • CLI, phase 2. It would reuse config login --provider <id> from [Feature]: codexbar config login --provider for Copilot, Grok and Kiro (CLI parity with macOS 0.80.0) #987. The CLI hands off to the desktop app to show the window, then exits when the cookie is saved or the window is closed.

    One known limit: some sites block Google sign-in inside embedded WebViews. For those providers, email or password sign-in on the provider's own page, or manual paste, would still be needed.

    Two questions for you:

    1. For your users, is signing in again after expiry acceptable? The alternative is a persistent CodexBar-owned profile that keeps "remember me".
    2. Which providers matter most to you? That would decide the first batch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions