slickenv 0.0.1 → 0.0.2

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/README.md ADDED
@@ -0,0 +1,210 @@
1
+ # SlickEnv
2
+
3
+ CLI tool for securely managing, syncing, and versioning `.env` files across your team.
4
+
5
+ - **End-to-end encrypted** — Private variables are encrypted client-side with AES-256-GCM before leaving your machine
6
+ - **Version history** — Every push creates an immutable version you can diff, rollback, or audit
7
+ - **Team sync** — Pull the latest environment from anywhere, always in sync
8
+ - **Zero plaintext on server** — The server never sees your unencrypted secrets
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install -g slickenv
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Authenticate via browser
20
+ slickenv login
21
+
22
+ # Initialize a project in your repo
23
+ slickenv init --name my-app
24
+
25
+ # Push your .env to SlickEnv
26
+ slickenv push -m "Initial environment"
27
+
28
+ # Pull from another machine or teammate
29
+ slickenv pull
30
+ ```
31
+
32
+ ## Commands
33
+
34
+ ### Authentication
35
+
36
+ #### `slickenv login`
37
+
38
+ Open browser to authenticate via OAuth. Your token is stored securely in the OS keychain (with a file fallback).
39
+
40
+ #### `slickenv logout`
41
+
42
+ Revoke your token and clear local credentials.
43
+
44
+ ### Project Setup
45
+
46
+ #### `slickenv init`
47
+
48
+ Initialize a SlickEnv project in the current directory. Creates a `.slickenv` config file and ensures `.env` is in your `.gitignore`.
49
+
50
+ ```bash
51
+ slickenv init --name my-app --env production
52
+ ```
53
+
54
+ | Flag | Description | Default |
55
+ | ------- | ------------------------------------ | -------------------- |
56
+ | `--name`| Project name | Current directory |
57
+ | `--env` | Default environment label | `production` |
58
+
59
+ ### Syncing
60
+
61
+ #### `slickenv push`
62
+
63
+ Push local `.env` changes to SlickEnv. Private variables are encrypted before upload.
64
+
65
+ ```bash
66
+ slickenv push -m "Add Stripe keys" --yes
67
+ ```
68
+
69
+ | Flag | Description | Default |
70
+ | --------------- | ------------------------------------ | -------- |
71
+ | `--file` | Path to env file | `.env` |
72
+ | `--force` | Skip conflict check | `false` |
73
+ | `--message, -m` | Version description | — |
74
+ | `--yes, -y` | Auto-confirm prompts | `false` |
75
+
76
+ #### `slickenv pull`
77
+
78
+ Pull the latest (or a specific) version and write it to your local `.env`.
79
+
80
+ ```bash
81
+ slickenv pull --version 3 --dry-run
82
+ ```
83
+
84
+ | Flag | Description | Default |
85
+ | ----------- | ---------------------------------- | -------- |
86
+ | `--version` | Pull a specific version | latest |
87
+ | `--dry-run` | Preview without writing to disk | `false` |
88
+ | `--yes, -y` | Auto-confirm overwrite | `false` |
89
+
90
+ ### Version History
91
+
92
+ #### `slickenv versions`
93
+
94
+ List version history for the current environment.
95
+
96
+ ```bash
97
+ slickenv versions --limit 10
98
+ ```
99
+
100
+ | Flag | Description | Default |
101
+ | --------- | ------------------------- | ------- |
102
+ | `--limit` | Number of versions | `20` |
103
+
104
+ #### `slickenv diff <version-a> <version-b>`
105
+
106
+ Show what changed between two versions.
107
+
108
+ ```bash
109
+ slickenv diff 3 5
110
+ ```
111
+
112
+ #### `slickenv rollback <version>`
113
+
114
+ Roll back to a previous version. This is non-destructive — it creates a new version with the contents of the target version.
115
+
116
+ ```bash
117
+ slickenv rollback 2 --yes
118
+ ```
119
+
120
+ | Flag | Description | Default |
121
+ | ----------- | ---------------------- | ------- |
122
+ | `--yes, -y` | Auto-confirm rollback | `false` |
123
+
124
+ ### Sharing
125
+
126
+ #### `slickenv export`
127
+
128
+ Generate a `.env.example` file with metadata annotations. Public variables include their values; private variables show only examples or placeholders.
129
+
130
+ ```bash
131
+ slickenv export --out .env.example
132
+ ```
133
+
134
+ | Flag | Description | Default |
135
+ | ------- | ------------------ | --------------- |
136
+ | `--out` | Output file path | `.env.example` |
137
+
138
+ #### `slickenv share`
139
+
140
+ Display a shareable view of the current environment. Private values are masked by default.
141
+
142
+ ```bash
143
+ slickenv share --public-only
144
+ slickenv share --reveal
145
+ ```
146
+
147
+ | Flag | Description | Default |
148
+ | --------------- | ------------------------------- | ------- |
149
+ | `--public-only` | Show only public variables | `false` |
150
+ | `--reveal` | Show private values in plain | `false` |
151
+
152
+ #### `slickenv status`
153
+
154
+ Show what's different between your local `.env` and the remote version.
155
+
156
+ ### Global Flags
157
+
158
+ All commands support:
159
+
160
+ | Flag | Description |
161
+ | ------------ | ------------------------ |
162
+ | `--json` | Output as JSON |
163
+ | `--no-color` | Disable colored output |
164
+ | `--verbose` | Show debug information |
165
+
166
+ ## `.env` Metadata Annotations
167
+
168
+ SlickEnv supports metadata annotations as comments above your variables:
169
+
170
+ ```bash
171
+ # @visibility=public @type=string @required=true
172
+ APP_NAME=my-app
173
+
174
+ # @visibility=private @required=true @example=sk_live_xxx
175
+ STRIPE_SECRET_KEY=sk_live_abc123
176
+ ```
177
+
178
+ | Annotation | Values | Default |
179
+ | --------------- | ------------------------------ | ----------- |
180
+ | `@visibility` | `public`, `private` | `private` |
181
+ | `@type` | `string`, `number`, `boolean` | `string` |
182
+ | `@required` | `true`, `false` | `false` |
183
+ | `@example` | Any value | — |
184
+
185
+ Variables marked `private` are encrypted client-side before syncing. Variables marked `public` are stored in plaintext.
186
+
187
+ ## Security
188
+
189
+ SlickEnv uses **client-side AES-256-GCM encryption** so private variables never leave your machine unencrypted.
190
+
191
+ - **Key derivation**: PBKDF2-SHA256 (100,000 iterations) using your user identity, project ID, and a server-side salt
192
+ - **Encryption**: AES-256-GCM with a unique 12-byte IV per variable and 128-bit authentication tags
193
+ - **Token storage**: OS keychain via keytar, with a chmod 600 file fallback
194
+ - **Zero knowledge**: The server stores only ciphertext — it cannot read your private variables
195
+
196
+ ## Environment Variables
197
+
198
+ | Variable | Description | Default |
199
+ | ------------------- | ------------------------------------ | ------------------------------------- |
200
+ | `SLICKENV_API_URL` | Override the backend API URL | `https://apienv.slickspender.com` |
201
+ | `SLICKENV_AUTH_URL` | Override the auth website URL | `https://env.slickspender.com` |
202
+ | `SLICKENV_TOKEN` | Use a token directly (CI/CD) | — |
203
+
204
+ ## Documentation
205
+
206
+ Full documentation is available at [env.slickspender.com/docs](https://env.slickspender.com/docs).
207
+
208
+ ## License
209
+
210
+ MIT
@@ -590,5 +590,5 @@
590
590
  ]
591
591
  }
592
592
  },
593
- "version": "0.0.1"
593
+ "version": "0.0.2"
594
594
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slickenv",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "CLI tool for securely managing, syncing, and versioning .env files",
5
5
  "type": "module",
6
6
  "license": "MIT",