@jmcombs/pi-1password 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +143 -0
- package/data/shell-plugins.json +450 -0
- package/index.ts +853 -0
- package/package.json +53 -0
- package/ui/bordered-popups.ts +318 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Jeremy Combs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/jmcombs/pi-extensions/main/assets/1password/preview.png" width="250" alt="1Password for Pi">
|
|
3
|
+
<br>
|
|
4
|
+
<a href="https://www.npmjs.com/package/@jmcombs/pi-1password"><img src="https://img.shields.io/npm/v/@jmcombs/pi-1password.svg" alt="npm version"></a>
|
|
5
|
+
<a href="https://www.npmjs.com/package/@jmcombs/pi-1password"><img src="https://img.shields.io/npm/dm/@jmcombs/pi-1password.svg" alt="npm downloads"></a>
|
|
6
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
7
|
+
<a href="https://github.com/jmcombs/pi-extensions/stargazers"><img src="https://img.shields.io/github/stars/jmcombs/pi-extensions?style=social" alt="GitHub stars"></a>
|
|
8
|
+
<a href="https://github.com/jmcombs/pi-extensions/issues"><img src="https://img.shields.io/github/issues/jmcombs/pi-extensions" alt="Open issues"></a>
|
|
9
|
+
<a href="https://github.com/sponsors/jmcombs"><img src="https://img.shields.io/badge/Sponsor-30363D?style=flat&logo=GitHub-Sponsors&logoColor=EA4AAA" alt="Sponsor"></a>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
# @jmcombs/pi-1password
|
|
13
|
+
|
|
14
|
+
1Password integration for the Pi coding agent — with a focus on **secure, transparent credential injection** so bare `gh`, `aws`, `heroku`, and other 1P-protected CLIs "just work" inside Pi without the LLM ever seeing tokens.
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
Get transparent credential injection in under a minute:
|
|
19
|
+
|
|
20
|
+
1. Make sure you have the **1Password CLI** (`op`) installed and signed in (the desktop app + biometric unlock is recommended on macOS).
|
|
21
|
+
|
|
22
|
+
2. Install the extension:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pi install @jmcombs/pi-1password
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
3. In any Pi chat, type:
|
|
29
|
+
```
|
|
30
|
+
/1password_onboard
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The command opens a beautiful guided interface (with live filtering and consistent styling) that lets you:
|
|
34
|
+
|
|
35
|
+
- Pick from 60+ popular tools (gh, aws, npm, heroku, Stripe, Fly.io, …)
|
|
36
|
+
- Search your 1Password vaults and pick the exact item + field
|
|
37
|
+
- Safely write a `!op read …` entry to `~/.pi/agent/auth.json`
|
|
38
|
+
|
|
39
|
+
After that, just use the CLIs normally inside Pi — the secrets are injected automatically at the host level.
|
|
40
|
+
|
|
41
|
+
Run `/1password_diagnose` anytime to see which variables are currently active.
|
|
42
|
+
|
|
43
|
+
## How It Works
|
|
44
|
+
|
|
45
|
+
This extension works by storing **references** (never the raw secrets) in `~/.pi/agent/auth.json` using the `!op read` syntax.
|
|
46
|
+
|
|
47
|
+
The easiest way to create these entries is with the guided `/1password_onboard` command shown above.
|
|
48
|
+
|
|
49
|
+
You can also manage entries manually if you prefer:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"GH_TOKEN": "!op read 'op://Automation/Agent GitHub Token/credential'",
|
|
54
|
+
"AWS_ACCESS_KEY_ID": "!op read 'op://Automation/AWS/credential'"
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
On every Pi start (and `/reload`), the extension:
|
|
59
|
+
|
|
60
|
+
- Reads the top-level keys from `auth.json`
|
|
61
|
+
- Securely resolves any `!op read ...` values in the privileged host process (using your normal `op` CLI + desktop app)
|
|
62
|
+
- Injects the final values as real environment variables into **every** agent `bash` tool call **and** your `!` / `!!` commands via Pi's spawn hook.
|
|
63
|
+
|
|
64
|
+
Result: the agent can run `gh auth status`, `gh repo view ...`, `aws sts get-caller-identity`, etc. with **bare commands**. No shell plugin hacks or `shellCommandPrefix` required, and no tokens ever reach the LLM or terminal output.
|
|
65
|
+
|
|
66
|
+
`/1password_diagnose` will show exactly which vars are active (names only).
|
|
67
|
+
|
|
68
|
+
## /1password_onboard
|
|
69
|
+
|
|
70
|
+
Run this command for a polished, guided setup experience:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
/1password_onboard
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
It provides a filterable, bordered interface that walks you through:
|
|
77
|
+
|
|
78
|
+
- Choosing from a curated list of 60+ popular 1Password shell plugins (maintained weekly via CI)
|
|
79
|
+
- Searching your vaults for the right item
|
|
80
|
+
- Selecting the exact field
|
|
81
|
+
- Reviewing the exact line that will be written to `auth.json`
|
|
82
|
+
- Optional immediate `/reload`
|
|
83
|
+
|
|
84
|
+
The command creates `~/.pi/agent/auth.json` with proper `0600` permissions if needed and never overwrites existing keys without confirmation.
|
|
85
|
+
|
|
86
|
+
## After Setup
|
|
87
|
+
|
|
88
|
+
Once you have entries in `auth.json`, just ask the agent to use the tools normally:
|
|
89
|
+
|
|
90
|
+
- "Run `gh auth status` and show the output."
|
|
91
|
+
- "Use the terminal to view this repo: `gh repo view jmcombs/pi-extensions`"
|
|
92
|
+
- "Run `aws sts get-caller-identity`"
|
|
93
|
+
|
|
94
|
+
The injection happens transparently via Pi’s spawn hook.
|
|
95
|
+
|
|
96
|
+
## Checking Status
|
|
97
|
+
|
|
98
|
+
Run `/1password_diagnose` at any time to see:
|
|
99
|
+
|
|
100
|
+
- Your `op` sign-in state
|
|
101
|
+
- Detected shell plugins
|
|
102
|
+
- Currently active injected environment variables (names only)
|
|
103
|
+
|
|
104
|
+
## Security Model
|
|
105
|
+
|
|
106
|
+
- All secret resolution happens in the privileged Pi host process.
|
|
107
|
+
- Values are only injected into the child environment of bash executions.
|
|
108
|
+
- The LLM never sees the actual secret values — only the clean commands it requested.
|
|
109
|
+
- `/1password_diagnose` (and the underlying tools) never return secret values, only variable names.
|
|
110
|
+
|
|
111
|
+
**Best practice**: Use dedicated, least-privilege items or fine-grained PATs rather than personal high-privilege credentials.
|
|
112
|
+
|
|
113
|
+
## Requirements & Setup
|
|
114
|
+
|
|
115
|
+
You need a working 1Password CLI that Pi can talk to:
|
|
116
|
+
|
|
117
|
+
1. **Install the 1Password desktop app** and sign in (required for biometric unlock on macOS).
|
|
118
|
+
2. **Install the 1Password CLI** (`op`):
|
|
119
|
+
- macOS: `brew install --cask 1password-cli`
|
|
120
|
+
- Verify with `op --version`
|
|
121
|
+
3. **Install this extension** (see Quick Start).
|
|
122
|
+
|
|
123
|
+
> The desktop app is only needed when Pi resolves the `!op read` references. The actual secret values are injected directly into child processes and never touch the LLM.
|
|
124
|
+
|
|
125
|
+
### Weekly Maintenance of Supported Tools
|
|
126
|
+
|
|
127
|
+
This extension maintains a curated list of 60+ 1Password shell plugins. A weekly GitHub Actions workflow fetches the latest data from 1password.dev, updates `data/shell-plugins.json`, and opens a PR for review. This keeps `/1password_onboard` current without manual maintenance.
|
|
128
|
+
|
|
129
|
+
## Development / Local Testing
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# From repo root
|
|
133
|
+
npm run check
|
|
134
|
+
|
|
135
|
+
# Load in a real Pi session (no install needed)
|
|
136
|
+
pi -e ./packages/1password
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The smoke test only verifies registration (no external `op` calls are mocked).
|
|
140
|
+
|
|
141
|
+
## License
|
|
142
|
+
|
|
143
|
+
[MIT](./LICENSE) © Jeremy Combs
|
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "Akamai",
|
|
4
|
+
"slug": "akamai",
|
|
5
|
+
"envVars": [],
|
|
6
|
+
"primaryEnvVar": null,
|
|
7
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/akamai/"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"name": "Argo CD",
|
|
11
|
+
"slug": "argo-cd",
|
|
12
|
+
"envVars": ["ARGOCD_AUTH_TOKEN", "ARGOCD_SERVER"],
|
|
13
|
+
"primaryEnvVar": "ARGOCD_AUTH_TOKEN",
|
|
14
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/argo-cd/"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "AWS",
|
|
18
|
+
"slug": "aws",
|
|
19
|
+
"envVars": ["AWS_ACCESS_KEY_ID", "AWS_DEFAULT_REGION", "AWS_SECRET_ACCESS_KEY"],
|
|
20
|
+
"primaryEnvVar": "AWS_ACCESS_KEY_ID",
|
|
21
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/aws/"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "AWS CDK Toolkit",
|
|
25
|
+
"slug": "aws-cdk-toolkit",
|
|
26
|
+
"envVars": ["AWS_ACCESS_KEY_ID", "AWS_DEFAULT_REGION", "AWS_SECRET_ACCESS_KEY"],
|
|
27
|
+
"primaryEnvVar": "AWS_ACCESS_KEY_ID",
|
|
28
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/aws-cdk-toolkit/"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "Axiom",
|
|
32
|
+
"slug": "axiom",
|
|
33
|
+
"envVars": ["AXIOM_DEPLOYMENT", "AXIOM_ORG_ID", "AXIOM_TOKEN"],
|
|
34
|
+
"primaryEnvVar": "AXIOM_TOKEN",
|
|
35
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/axiom/"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "Binance",
|
|
39
|
+
"slug": "binance",
|
|
40
|
+
"envVars": ["BINANCE_API_KEY", "BINANCE_API_SECRET"],
|
|
41
|
+
"primaryEnvVar": "BINANCE_API_KEY",
|
|
42
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/binance/"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "brew",
|
|
46
|
+
"slug": "homebrew",
|
|
47
|
+
"envVars": ["HOMEBREW_GITHUB_API_TOKEN"],
|
|
48
|
+
"primaryEnvVar": "HOMEBREW_GITHUB_API_TOKEN",
|
|
49
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/homebrew/"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "Cachix",
|
|
53
|
+
"slug": "cachix",
|
|
54
|
+
"envVars": ["CACHIX_AUTH_TOKEN"],
|
|
55
|
+
"primaryEnvVar": "CACHIX_AUTH_TOKEN",
|
|
56
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/cachix/"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "Cargo",
|
|
60
|
+
"slug": "cargo",
|
|
61
|
+
"envVars": ["CARGO_REGISTRY_TOKEN"],
|
|
62
|
+
"primaryEnvVar": "CARGO_REGISTRY_TOKEN",
|
|
63
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/cargo/"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "CircleCI",
|
|
67
|
+
"slug": "circleci",
|
|
68
|
+
"envVars": ["CIRCLECI_CLI_TOKEN"],
|
|
69
|
+
"primaryEnvVar": "CIRCLECI_CLI_TOKEN",
|
|
70
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/circleci/"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "Civo",
|
|
74
|
+
"slug": "civo",
|
|
75
|
+
"envVars": ["CIVO_API_KEY", "CIVO_API_KEY_NAME"],
|
|
76
|
+
"primaryEnvVar": "CIVO_API_KEY",
|
|
77
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/civo/"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "Claude Code",
|
|
81
|
+
"slug": "claude-code",
|
|
82
|
+
"envVars": ["ANTHROPIC_API_KEY"],
|
|
83
|
+
"primaryEnvVar": "ANTHROPIC_API_KEY",
|
|
84
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/claude-code/"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "Cloudflare Workers",
|
|
88
|
+
"slug": "cloudflare-workers",
|
|
89
|
+
"envVars": ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_TOKEN"],
|
|
90
|
+
"primaryEnvVar": "CLOUDFLARE_API_TOKEN",
|
|
91
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/cloudflare-workers/"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "Crowdin",
|
|
95
|
+
"slug": "crowdin",
|
|
96
|
+
"envVars": ["CROWDIN_BASE_URL", "CROWDIN_PERSONAL_TOKEN", "CROWDIN_PROJECT_ID"],
|
|
97
|
+
"primaryEnvVar": "CROWDIN_PERSONAL_TOKEN",
|
|
98
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/crowdin/"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "Databricks",
|
|
102
|
+
"slug": "databricks",
|
|
103
|
+
"envVars": ["DATABRICKS_HOST", "DATABRICKS_TOKEN"],
|
|
104
|
+
"primaryEnvVar": "DATABRICKS_TOKEN",
|
|
105
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/databricks/"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "DigitalOcean",
|
|
109
|
+
"slug": "digitalocean",
|
|
110
|
+
"envVars": ["DIGITALOCEAN_ACCESS_TOKEN"],
|
|
111
|
+
"primaryEnvVar": "DIGITALOCEAN_ACCESS_TOKEN",
|
|
112
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/digitalocean/"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "Dogshell",
|
|
116
|
+
"slug": "datadog",
|
|
117
|
+
"envVars": ["DATADOG_API_KEY", "DATADOG_APP_KEY"],
|
|
118
|
+
"primaryEnvVar": "DATADOG_API_KEY",
|
|
119
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/datadog/"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "Fastly",
|
|
123
|
+
"slug": "fastly",
|
|
124
|
+
"envVars": ["FASTLY_API_TOKEN"],
|
|
125
|
+
"primaryEnvVar": "FASTLY_API_TOKEN",
|
|
126
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/fastly/"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "Flyctl",
|
|
130
|
+
"slug": "flyctl",
|
|
131
|
+
"envVars": ["FLY_ACCESS_TOKEN"],
|
|
132
|
+
"primaryEnvVar": "FLY_ACCESS_TOKEN",
|
|
133
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/flyctl/"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "FOSSA",
|
|
137
|
+
"slug": "fossa",
|
|
138
|
+
"envVars": ["FOSSA_API_KEY"],
|
|
139
|
+
"primaryEnvVar": "FOSSA_API_KEY",
|
|
140
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/fossa/"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "Gitea",
|
|
144
|
+
"slug": "gitea",
|
|
145
|
+
"envVars": [],
|
|
146
|
+
"primaryEnvVar": null,
|
|
147
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/gitea/"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "GitHub",
|
|
151
|
+
"slug": "github",
|
|
152
|
+
"envVars": ["GH_HOST", "GH_TOKEN"],
|
|
153
|
+
"primaryEnvVar": "GH_TOKEN",
|
|
154
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/github/"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "GitLab",
|
|
158
|
+
"slug": "gitlab",
|
|
159
|
+
"envVars": ["GITLAB_API_HOST", "GITLAB_HOST", "GITLAB_TOKEN"],
|
|
160
|
+
"primaryEnvVar": "GITLAB_TOKEN",
|
|
161
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/gitlab/"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "HashiCorp Vault",
|
|
165
|
+
"slug": "hashicorp-vault",
|
|
166
|
+
"envVars": ["VAULT_ADDR", "VAULT_NAMESPACE", "VAULT_TOKEN"],
|
|
167
|
+
"primaryEnvVar": "VAULT_TOKEN",
|
|
168
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/hashicorp-vault/"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "Heroku",
|
|
172
|
+
"slug": "heroku",
|
|
173
|
+
"envVars": ["HEROKU_API_KEY"],
|
|
174
|
+
"primaryEnvVar": "HEROKU_API_KEY",
|
|
175
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/heroku/"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "Hetzner Cloud",
|
|
179
|
+
"slug": "hetzner-cloud",
|
|
180
|
+
"envVars": ["HCLOUD_TOKEN"],
|
|
181
|
+
"primaryEnvVar": "HCLOUD_TOKEN",
|
|
182
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/hetzner-cloud/"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "HuggingFace",
|
|
186
|
+
"slug": "huggingface",
|
|
187
|
+
"envVars": ["HF_ENDPOINT", "HF_INFERENCE_ENDPOINT", "HUGGING_FACE_HUB_TOKEN"],
|
|
188
|
+
"primaryEnvVar": "HUGGING_FACE_HUB_TOKEN",
|
|
189
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/huggingface/"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "InfluxDB",
|
|
193
|
+
"slug": "influxdb",
|
|
194
|
+
"envVars": ["INFLUX_HOST", "INFLUX_ORG", "INFLUX_TOKEN"],
|
|
195
|
+
"primaryEnvVar": "INFLUX_TOKEN",
|
|
196
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/influxdb/"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "Kaggle",
|
|
200
|
+
"slug": "kaggle",
|
|
201
|
+
"envVars": ["KAGGLE_KEY", "KAGGLE_USERNAME"],
|
|
202
|
+
"primaryEnvVar": "KAGGLE_KEY",
|
|
203
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/kaggle/"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"name": "Lacework",
|
|
207
|
+
"slug": "lacework",
|
|
208
|
+
"envVars": ["LW_ACCOUNT", "LW_API_KEY", "LW_API_SECRET"],
|
|
209
|
+
"primaryEnvVar": "LW_API_KEY",
|
|
210
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/lacework/"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"name": "Laravel Forge",
|
|
214
|
+
"slug": "laravel-forge",
|
|
215
|
+
"envVars": ["FORGE_API_TOKEN"],
|
|
216
|
+
"primaryEnvVar": "FORGE_API_TOKEN",
|
|
217
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/laravel-forge/"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "Laravel Vapor",
|
|
221
|
+
"slug": "laravel-vapor",
|
|
222
|
+
"envVars": ["VAPOR_API_TOKEN"],
|
|
223
|
+
"primaryEnvVar": "VAPOR_API_TOKEN",
|
|
224
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/laravel-vapor/"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"name": "Linode",
|
|
228
|
+
"slug": "linode",
|
|
229
|
+
"envVars": ["LINODE_CLI_TOKEN"],
|
|
230
|
+
"primaryEnvVar": "LINODE_CLI_TOKEN",
|
|
231
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/linode/"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "LocalStack",
|
|
235
|
+
"slug": "localstack",
|
|
236
|
+
"envVars": ["LOCALSTACK_API_KEY"],
|
|
237
|
+
"primaryEnvVar": "LOCALSTACK_API_KEY",
|
|
238
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/localstack/"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "MongoDB Atlas",
|
|
242
|
+
"slug": "mongodb-atlas",
|
|
243
|
+
"envVars": ["MONGODB_ATLAS_PRIVATE_API_KEY", "MONGODB_ATLAS_PUBLIC_API_KEY"],
|
|
244
|
+
"primaryEnvVar": "MONGODB_ATLAS_PRIVATE_API_KEY",
|
|
245
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/mongodb-atlas/"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "MySQL",
|
|
249
|
+
"slug": "mysql",
|
|
250
|
+
"envVars": [],
|
|
251
|
+
"primaryEnvVar": null,
|
|
252
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/mysql/"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"name": "ngrok",
|
|
256
|
+
"slug": "ngrok",
|
|
257
|
+
"envVars": [],
|
|
258
|
+
"primaryEnvVar": null,
|
|
259
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/ngrok/"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"name": "Oh Dear",
|
|
263
|
+
"slug": "oh-dear",
|
|
264
|
+
"envVars": ["OHDEAR_API_TOKEN"],
|
|
265
|
+
"primaryEnvVar": "OHDEAR_API_TOKEN",
|
|
266
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/oh-dear/"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "Okta",
|
|
270
|
+
"slug": "okta",
|
|
271
|
+
"envVars": ["OKTA_CLIENT_ORGURL", "OKTA_CLIENT_TOKEN"],
|
|
272
|
+
"primaryEnvVar": "OKTA_CLIENT_TOKEN",
|
|
273
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/okta/"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"name": "OpenAI",
|
|
277
|
+
"slug": "openai",
|
|
278
|
+
"envVars": ["OPENAI_API_KEY"],
|
|
279
|
+
"primaryEnvVar": "OPENAI_API_KEY",
|
|
280
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/openai/"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"name": "OpenAI Evals",
|
|
284
|
+
"slug": "openai-evals",
|
|
285
|
+
"envVars": ["OPENAI_API_KEY"],
|
|
286
|
+
"primaryEnvVar": "OPENAI_API_KEY",
|
|
287
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/openai-evals/"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"name": "Pipedream",
|
|
291
|
+
"slug": "pipedream",
|
|
292
|
+
"envVars": [],
|
|
293
|
+
"primaryEnvVar": null,
|
|
294
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/pipedream/"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "PostgreSQL",
|
|
298
|
+
"slug": "postgresql",
|
|
299
|
+
"envVars": ["PGDATABASE", "PGHOST", "PGPASSWORD", "PGPORT", "PGUSER"],
|
|
300
|
+
"primaryEnvVar": "PGPASSWORD",
|
|
301
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/postgresql/"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "Pulumi",
|
|
305
|
+
"slug": "pulumi",
|
|
306
|
+
"envVars": ["PULUMI_ACCESS_TOKEN", "PULUMI_BACKEND_URL"],
|
|
307
|
+
"primaryEnvVar": "PULUMI_ACCESS_TOKEN",
|
|
308
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/pulumi/"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"name": "ReadMe",
|
|
312
|
+
"slug": "readme",
|
|
313
|
+
"envVars": ["RDME_API_KEY", "RDME_EMAIL", "RDME_PROJECT"],
|
|
314
|
+
"primaryEnvVar": "RDME_API_KEY",
|
|
315
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/readme/"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "Scaleway",
|
|
319
|
+
"slug": "scaleway",
|
|
320
|
+
"envVars": [
|
|
321
|
+
"SCW_ACCESS_KEY",
|
|
322
|
+
"SCW_DEFAULT_ORGANIZATION_ID",
|
|
323
|
+
"SCW_DEFAULT_PROJECT_ID",
|
|
324
|
+
"SCW_DEFAULT_REGION",
|
|
325
|
+
"SCW_DEFAULT_ZONE",
|
|
326
|
+
"SCW_SECRET_KEY"
|
|
327
|
+
],
|
|
328
|
+
"primaryEnvVar": "SCW_ACCESS_KEY",
|
|
329
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/scaleway/"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"name": "Sentry",
|
|
333
|
+
"slug": "sentry",
|
|
334
|
+
"envVars": ["SENTRY_AUTH_TOKEN", "SENTRY_ORG", "SENTRY_PROJECT", "SENTRY_URL"],
|
|
335
|
+
"primaryEnvVar": "SENTRY_AUTH_TOKEN",
|
|
336
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/sentry/"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"name": "Snowflake",
|
|
340
|
+
"slug": "snowflake",
|
|
341
|
+
"envVars": ["SNOWSQL_ACCOUNT", "SNOWSQL_PWD", "SNOWSQL_USER"],
|
|
342
|
+
"primaryEnvVar": "SNOWSQL_ACCOUNT",
|
|
343
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/snowflake/"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"name": "Snyk",
|
|
347
|
+
"slug": "snyk",
|
|
348
|
+
"envVars": ["SNYK_TOKEN"],
|
|
349
|
+
"primaryEnvVar": "SNYK_TOKEN",
|
|
350
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/snyk/"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"name": "Sourcegraph",
|
|
354
|
+
"slug": "sourcegraph",
|
|
355
|
+
"envVars": ["SRC_ACCESS_TOKEN", "SRC_ENDPOINT"],
|
|
356
|
+
"primaryEnvVar": "SRC_ACCESS_TOKEN",
|
|
357
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/sourcegraph/"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"name": "Stripe",
|
|
361
|
+
"slug": "stripe",
|
|
362
|
+
"envVars": ["STRIPE_API_KEY"],
|
|
363
|
+
"primaryEnvVar": "STRIPE_API_KEY",
|
|
364
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/stripe/"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"name": "Terraform",
|
|
368
|
+
"slug": "terraform",
|
|
369
|
+
"envVars": [],
|
|
370
|
+
"primaryEnvVar": null,
|
|
371
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/terraform/"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"name": "Todoist",
|
|
375
|
+
"slug": "todoist",
|
|
376
|
+
"envVars": [],
|
|
377
|
+
"primaryEnvVar": null,
|
|
378
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/todoist/"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"name": "Treasure Data",
|
|
382
|
+
"slug": "treasure-data",
|
|
383
|
+
"envVars": ["TD_API_KEY"],
|
|
384
|
+
"primaryEnvVar": "TD_API_KEY",
|
|
385
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/treasure-data/"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"name": "Tugboat",
|
|
389
|
+
"slug": "tugboat",
|
|
390
|
+
"envVars": ["TUGBOAT_API_TOKEN"],
|
|
391
|
+
"primaryEnvVar": "TUGBOAT_API_TOKEN",
|
|
392
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/tugboat/"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "Twilio",
|
|
396
|
+
"slug": "twilio",
|
|
397
|
+
"envVars": ["TWILIO_ACCOUNT_SID", "TWILIO_API_KEY", "TWILIO_API_SECRET", "TWILIO_REGION"],
|
|
398
|
+
"primaryEnvVar": "TWILIO_API_KEY",
|
|
399
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/twilio/"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"name": "Upstash",
|
|
403
|
+
"slug": "upstash",
|
|
404
|
+
"envVars": ["UPSTASH_API_KEY", "UPSTASH_EMAIL"],
|
|
405
|
+
"primaryEnvVar": "UPSTASH_API_KEY",
|
|
406
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/upstash/"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"name": "Vercel",
|
|
410
|
+
"slug": "vercel",
|
|
411
|
+
"envVars": [],
|
|
412
|
+
"primaryEnvVar": null,
|
|
413
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/vercel/"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"name": "Vertica",
|
|
417
|
+
"slug": "vertica",
|
|
418
|
+
"envVars": ["VSQL_DATABASE", "VSQL_HOST", "VSQL_PASSWORD", "VSQL_PORT", "VSQL_USER"],
|
|
419
|
+
"primaryEnvVar": "VSQL_PASSWORD",
|
|
420
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/vertica/"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"name": "Vultr",
|
|
424
|
+
"slug": "vultr",
|
|
425
|
+
"envVars": ["VULTR_API_KEY"],
|
|
426
|
+
"primaryEnvVar": "VULTR_API_KEY",
|
|
427
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/vultr/"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"name": "YugabyteDB SQL Shell",
|
|
431
|
+
"slug": "yugabytedb",
|
|
432
|
+
"envVars": ["PGHOST", "PGPASSWORD", "PGPORT", "PGUSER"],
|
|
433
|
+
"primaryEnvVar": "PGPASSWORD",
|
|
434
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/yugabytedb/"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"name": "Zapier",
|
|
438
|
+
"slug": "zapier",
|
|
439
|
+
"envVars": ["ZAPIER_DEPLOY_KEY"],
|
|
440
|
+
"primaryEnvVar": "ZAPIER_DEPLOY_KEY",
|
|
441
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/zapier/"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"name": "Zendesk",
|
|
445
|
+
"slug": "zendesk",
|
|
446
|
+
"envVars": ["ZENDESK_API_TOKEN", "ZENDESK_EMAIL", "ZENDESK_SUBDOMAIN"],
|
|
447
|
+
"primaryEnvVar": "ZENDESK_API_TOKEN",
|
|
448
|
+
"pageUrl": "https://www.1password.dev/cli/shell-plugins/zendesk/"
|
|
449
|
+
}
|
|
450
|
+
]
|