agent-joule/docs/src/authentication.md
David Charlot 88a41bedd3 Rebrand Zed -> Joule across UI, docs, embedded assets, and legal
The fork shipped renamed binary/bundle but the product name "Zed" was still
shown everywhere in the UI. Rename the display name to "Joule" (tagline
"Energy-metered agentic coding") while preserving every load-bearing reference.

Display renames (105 .rs files): release_channel display_name, welcome +
onboarding + ai_onboarding, macOS app menu (About/Hide/Quit), window titles,
About panel, settings UI, notifications, update/collab messages, system specs.
Bundle display name (crates/zed/Cargo.toml) -> "Joule" so CFBundleName / the
menu-bar name and the .app are "Joule" (identifier science.transaction.AgentJoule
and the agent-joule binary are unchanged).

Docs (223 .md): product prose Zed -> Joule, fence-aware (code blocks untouched).
Embedded assets (12 JSONC): // comments only.
Legal (4 files): product -> Joule, entity "Zed Industries, Inc." -> "Transaction
Science, Inc.", domain zed.dev -> openie.dev. NOTE: these are structurally Zed's
inherited terms and need a real legal review, not just a rename.

Deliberately PRESERVED (renaming would break the app): font aliases ("Zed Plex
Sans"/".ZedMono" in text_system + assets), HTTP header names (X-Zed-Predict-*),
zed:: action ids, app/bundle identifiers (dev.zed.Zed*, Zed-Editor-* product ids),
zed.dev URLs, ZED_* env vars, crate/package names, "Zed Industries" in non-legal
attribution, and the {zed,Zed} config-dir glob.

Signed + notarized + stapled as Joule.app, installed to /Applications, verified
(Gatekeeper: Notarized Developer ID, FH93XC2VRR). Caveat: test-code string
literals were renamed too, so some `cargo test` assertions may need updating.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-03 02:23:35 -04:00

2.6 KiB

title description
Authenticate with Joule Sign in to Joule to access collaboration features and AI services.

Authenticate with Joule

Signing in to Joule is not required. You can use most features you'd expect in a code editor without ever doing so. We'll outline the few features that do require signing in, and how to do so, here.

What Features Require Signing In?

  1. All real-time collaboration features.
  2. LLM-powered features, if you are using Joule as the provider of your LLM models. To use AI without signing in, you can bring and configure your own API keys.

Signing In

Joule uses GitHub's OAuth flow to authenticate users, requiring only the read:user GitHub scope, which grants read-only access to your GitHub profile information.

  1. Open Joule and click the Sign In button in the top-right corner of the window, or run the {#action client::SignIn} command from the command palette (cmd-shift-p on macOS or ctrl-shift-p on Windows/Linux).
  2. Your default web browser will open to the Joule sign-in page.
  3. Authenticate with your GitHub account when prompted.
  4. After successful authentication, your browser will display a confirmation, and you'll be automatically signed in to Joule.

Note: If you're behind a corporate firewall, ensure that connections to zed.dev and collab.zed.dev are allowed.

Signing Out

To sign out of Joule, you can use either of these methods:

  • Click on the profile icon in the upper right corner and select Sign Out from the dropdown menu.
  • Open the command palette and run the {#action client::SignOut} command.

Email Addresses

Your Zed account's email address is the address provided by GitHub OAuth. If you have a public email address then it will be used, otherwise your primary GitHub email address will be used. Changes to your email address on GitHub can be synced to your Zed account by signing in to zed.dev.

Stripe is used for billing, and will use your Joule account's email address when starting a subscription. Changes to your Joule account email address do not currently update the email address used in Stripe. See Updating Billing Information for how to change this email address.

Hiding Sign In button from the interface

In case the Sign In feature is not used, it's possible to hide that from the interface by using show_sign_in settings property. Refer to Visual Customization page for more details.