Skip to content

Add a localhost credentials manager #547

Description

@kwannoel

Why

The Controller needs a local credentials manager so users can store and use sensitive values such as API keys, tokens, and service credentials without hardcoding them into project files, shell history, or per-session prompts.

What

Add a credentials manager that runs on localhost and can be used by the app and managed terminal sessions.

A first version should support:

  • Creating, updating, listing, and deleting named credentials locally
  • Keeping credential values out of normal logs, terminal transcripts, and frontend state dumps
  • Supplying credentials to launched sessions only through an explicit, auditable path
  • Persisting credentials across app restarts on the local machine
  • Clear UI/API behavior for missing, renamed, or revoked credentials

Constraints

  • Must run locally; do not depend on a hosted secrets service for the core path
  • Bind only to localhost by default
  • Avoid exposing raw secret values once saved unless the user explicitly reveals or rotates them
  • Follow the app Axum + Svelte conventions
  • Consider macOS Keychain or another OS-backed store if it fits the local-first model

Acceptance Criteria

  • Users can manage named credentials from the local app
  • Managed Claude Code sessions can opt into specific credentials without leaking unrelated secrets
  • Secrets are redacted in logs, API responses, and terminal-visible diagnostics
  • Restarting the app does not lose saved credentials
  • Tests cover the redaction and credential access boundaries

Related

  • add secret backup mechanism #72 covers backup/export/import of secrets and assumes a secret store exists. This issue is for the localhost credentials manager itself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions