You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(1pass): add userSettingsJson target for secrets (#310)
* feat: add braintrust plugin and configure plugin settings
- Add braintrust plugin with README and manifest
- Update plugins.settings.yaml with braintrust config
- Update settings.json with plugin configuration
- Improve 1pass plugin settings and install script
- Enhance plugin-config-read.sh shared library
* chore: `just lint`
* chore: `just lint`
* chore: replace local braintrust plugin with upstream braintrustdata marketplace
- Remove plugins/braintrust/ (local stub)
- Add braintrustdata/braintrust-claude-plugin as extraKnownMarketplaces entry
- Enable braintrust@braintrust plugin in enabledPlugins
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* fix: enable trace-claude-code@braintrust instead of braintrust@braintrust
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* chore: `just lint`
* fix: use braintrust-claude-plugin as marketplace key for trace-claude-code
Fixes install failure - the CLI uses the marketplace's own name field
(braintrust-claude-plugin) not the alias (braintrust).
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* chore: rename braintrust marketplace key to poc-braintrust
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* chore: `mise run lint`
* Revert "chore: rename braintrust marketplace key to poc-braintrust"
This reverts commit f6ce578.
* feat: rename 1pass plugin to poc-1pass
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* feat: rename poc-1pass plugin back to 1pass
Reverts the poc- prefix added earlier. Updates all internal references
including plugin.json name, settings key, PLUGIN_NAME, README, skills,
and settings.json enabledPlugins entry.
Related to #299https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* chore: `mise run lint`
* chore: auto-bump plugin versions and update marketplace
* docs: improve 1pass secrets configuration documentation
Add detailed explanation of the secrets `target` field with a comparison
table, usage guidance for each target, and a multi-target example in the
README. Add valid target values as comments in the project-level
plugins.settings.yaml.
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* chore: `mise run lint`
* chore: format settings.json deny array
https://claude.ai/code/session_015AHLh1tFE1RGsYXH7WvKr1
* fix: validate and fix 1pass secrets injection (#309)
* fix: yq compatibility in plugin_get_config_json and correct vault reference
Two bugs prevented 1pass secrets injection from working:
1. _plugin_read_config_json used `yq -r -o=json` which is a mikefarah/yq
(Go) flag. Python yq (jq wrapper) doesn't support -o=json and silently
fails, causing inject_secrets to see 0 secrets. Fixed by falling back
to `yq -r` when -o=json fails — Python yq outputs JSON by default.
2. The Braintrust secret reference used vault "heapsinfra" which the
service account doesn't have access to. Changed to "AI-Jack" which
is the vault available to the OP_SERVICE_ACCOUNT_TOKEN.
Bumps 1pass plugin to 0.1.13.
https://claude.ai/code/session_01Pr3ohqAFya5fPn3QXMq1Wy
* chore: `mise run lint`
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat(1pass): add userSettingsJson target for secrets injection
Adds a new `userSettingsJson` target that writes secrets to
~/.claude/settings.json env block. This is useful for API keys
(like BRAINTRUST_API_KEY) that should be available across all
projects for a user without being committed to any repo.
Also updates the project config to use this target for the
Braintrust API key.
https://claude.ai/code/session_018VyV8FnFEME5cSQpJkxoJA
* chore: `mise run lint`
* chore: auto-bump plugin versions and update marketplace
* fix(1pass): DRY up _write_secret() JSON settings cases
Collapse settingsJson, settingsLocalJson, and userSettingsJson into a
single case block — only the file path differs. Also fix doc comment
to include userSettingsJson in the target list.
Addresses review feedback on #310.
https://claude.ai/code/session_018VyV8FnFEME5cSQpJkxoJA
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: automation-nsheaps[bot] <251779498+automation-nsheaps[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .claude-plugin/marketplace.json
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@
11
11
{
12
12
"name": "1pass",
13
13
"description": "Install and manage 1Password CLI (op) and op-exec in Claude Code sessions. Provides session-start auto-install for web sessions and comprehensive workflow skills.",
14
-
"version": "0.1.11",
14
+
"version": "0.2.0",
15
15
"author": {
16
16
"name": "Nathan Heaps"
17
17
},
@@ -68,7 +68,7 @@
68
68
{
69
69
"name": "common-sense",
70
70
"description": "Common-sense rules for AI assistant behavior. On session start, symlinks bundled rules into the project's .claude/rules/common-sense directory so they are automatically loaded as context.",
71
-
"version": "1.3.12",
71
+
"version": "1.3.13",
72
72
"author": {
73
73
"name": "Nathan Heaps"
74
74
},
@@ -194,7 +194,7 @@
194
194
{
195
195
"name": "git-spice",
196
196
"description": "Skill for managing stacked Git branches with git-spice (gs) CLI tool",
197
-
"version": "0.2.6",
197
+
"version": "0.2.7",
198
198
"author": {
199
199
"name": "Nathan Heaps"
200
200
},
@@ -214,7 +214,7 @@
214
214
{
215
215
"name": "github",
216
216
"description": "GitHub CLI installation, authentication, and workflow skill for Claude Code sessions. Consolidates gh-tool and github-auth-skill into a single plugin.",
217
-
"version": "0.1.12",
217
+
"version": "0.1.13",
218
218
"author": {
219
219
"name": "Nathan Heaps"
220
220
},
@@ -239,7 +239,7 @@
239
239
{
240
240
"name": "github-app",
241
241
"description": "Automatic GitHub App token lifecycle for Claude Code sessions. Generates installation tokens on session start, monitors expiry via PreToolUse hook, and refreshes transparently before commands that need authentication.",
242
-
"version": "0.1.10",
242
+
"version": "0.1.11",
243
243
"author": {
244
244
"name": "Nathan Heaps"
245
245
},
@@ -261,7 +261,7 @@
261
261
{
262
262
"name": "google-workspace-cli",
263
263
"description": "Install and manage the Google Workspace CLI (gws) with per-service skills for Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat, Tasks, Contacts, and Admin",
264
-
"version": "0.1.6",
264
+
"version": "0.1.7",
265
265
"author": {
266
266
"name": "Nathan Heaps"
267
267
},
@@ -313,7 +313,7 @@
313
313
{
314
314
"name": "mise",
315
315
"description": "Install and manage mise (tool version manager) in Claude Code sessions. Provides session-start auto-install for web sessions and comprehensive workflow skills.",
316
-
"version": "0.2.17",
316
+
"version": "0.2.18",
317
317
"author": {
318
318
"name": "Nathan Heaps"
319
319
},
@@ -353,7 +353,7 @@
353
353
{
354
354
"name": "permissions-sync",
355
355
"description": "Merge permission scopes from configurable source settings.json files into settings.local.json on session start. Supports project-level and user-level installation.",
356
-
"version": "0.1.11",
356
+
"version": "0.1.12",
357
357
"author": {
358
358
"name": "Nathan Heaps"
359
359
},
@@ -478,7 +478,7 @@
478
478
{
479
479
"name": "sequential-thinking",
480
480
"description": "Set up the sequential-thinking MCP server and auto-configure permissions for its tools on session start.",
Copy file name to clipboardExpand all lines: plugins/1pass/.claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "1pass",
3
-
"version": "0.1.11",
3
+
"version": "0.2.0",
4
4
"description": "Install and manage 1Password CLI (op) and op-exec in Claude Code sessions. Provides session-start auto-install for web sessions and comprehensive workflow skills.",
Copy file name to clipboardExpand all lines: plugins/1pass/README.md
+58Lines changed: 58 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,64 @@ Create or update `plugins.settings.yaml` at project or user level:
40
40
opExecVersion: "latest"# Pin a specific op-exec version or use "latest"
41
41
```
42
42
43
+
## Secrets Injection
44
+
45
+
The plugin can inject 1Password secrets as environment variables at session start. This works on **all session types** (local and web), as long as `op` is available and authenticated.
| `envFile` (default) | `$CLAUDE_ENV_FILE` | Current session only — gone on next session | No |
64
+
| `settingsJson` | `.claude/settings.json` → `env` block | Persists across sessions | **Yes** — visible in repo history |
65
+
| `settingsLocalJson` | `.claude/settings.local.json` → `env` block | Persists across sessions | No — gitignored |
66
+
| `userSettingsJson` | `~/.claude/settings.json` → `env` block | User-global, persists across all projects | No — outside repo |
67
+
68
+
**When to use which target:**
69
+
70
+
- **`envFile`** — Best for most secrets. Session-scoped, no disk persistence, no git risk. Re-injected fresh each session from 1Password. This is the default and recommended target.
71
+
- **`settingsLocalJson`** — Use when you need the secret to survive across sessions without re-injection (e.g. if `op` auth is only available during initial setup). The file is gitignored so secrets won't leak to the repo.
72
+
- **`userSettingsJson`** — Use for secrets that should be available across all projects for a user. Writes to `~/.claude/settings.json` which is outside any repo. Good for API keys used across multiple projects (e.g. `BRAINTRUST_API_KEY`).
73
+
- **`settingsJson`** — Use only for non-sensitive values you want committed. **Never use this for actual secrets** — the file is tracked by git.
0 commit comments