claude-code - 💡(How to fix) Fix Use Linux system keychain (libsecret) for sensitive plugin credentials [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#47955Fetched 2026-04-15 06:37:33
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×4commented ×1

Root Cause

  • Desktop Linux developers (GNOME, KDE, etc.) have a working keychain that goes unused
  • Plain-text credential files are a weaker security posture than the keychain-backed storage macOS and Windows users get
  • The O'Reilly plugin ecosystem has multiple plugins requiring auth tokens (Sentry, Cortex, Jira, etc.), so this affects many credentials per developer
RAW_BUFFERClick to expand / collapse

Feature Request

Plugin credentials marked as "sensitive": true in userConfig are stored in the system keychain on macOS (Keychain) and Windows (Credential Manager), but on Linux they fall back to a plain-text JSON file at ~/.claude/.credentials.json.

Linux has a standard keychain API via libsecret (D-Bus Secret Service API), backed by GNOME Keyring, KDE Wallet, or KeePassXC. Most desktop Linux environments have a secret service provider running.

Proposed behavior

  1. Check if a D-Bus secret service is available
  2. If yes, store/retrieve sensitive plugin credentials via libsecret
  3. If no secret service is available, fall back to the current ~/.claude/.credentials.json behavior

Why this matters

  • Desktop Linux developers (GNOME, KDE, etc.) have a working keychain that goes unused
  • Plain-text credential files are a weaker security posture than the keychain-backed storage macOS and Windows users get
  • The O'Reilly plugin ecosystem has multiple plugins requiring auth tokens (Sentry, Cortex, Jira, etc.), so this affects many credentials per developer

Notes

  • The main challenge is Node.js native bindings for libsecret (the old keytar package was deprecated). A lightweight D-Bus client or spawning secret-tool as a subprocess could be alternatives.
  • Headless/container/WSL environments often lack a secret service, so the fallback is still needed.

extent analysis

TL;DR

Implement a D-Bus secret service check and utilize libsecret for storing and retrieving sensitive plugin credentials on Linux, falling back to the current plain-text JSON file behavior if no secret service is available.

Guidance

  • Investigate using a lightweight D-Bus client or spawning secret-tool as a subprocess to interact with libsecret, as native Node.js bindings are not readily available.
  • Check for the availability of a D-Bus secret service before attempting to store or retrieve credentials.
  • Consider the fallback behavior for headless, container, or WSL environments where a secret service may not be present.
  • Evaluate the security implications of storing credentials in a plain-text JSON file and weigh the benefits of implementing a more secure solution using libsecret.

Example

No code example is provided due to the lack of specific implementation details in the issue.

Notes

The proposed solution relies on the availability of a D-Bus secret service on Linux systems, which may not be present in all environments. Additionally, the challenge of finding suitable Node.js native bindings for libsecret may require alternative approaches.

Recommendation

Apply a workaround using a lightweight D-Bus client or secret-tool subprocess to utilize libsecret for storing and retrieving sensitive plugin credentials, as this approach addresses the security concerns associated with plain-text credential storage on Linux.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Use Linux system keychain (libsecret) for sensitive plugin credentials [1 comments, 2 participants]