@thisisamank/noenv-cli 0.0.0-stage → 0.2.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/CHANGELOG.md +31 -0
- package/README.md +57 -2
- package/dist/noenv.js +2492 -0
- package/package.json +42 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.0 — 2026-11-13
|
|
4
|
+
|
|
5
|
+
Coding agents and CI get their secrets with one command, secrets push to Cloudflare Workers, one CLI works with several teams, and `cd` is fast again.
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `noenv exec -- CMD` runs a command with the secrets of the repository in the current directory. It is for coding agents, scripts, and CI, where the `cd` hook does not run. It removes secrets that your shell loaded for another repository first.
|
|
10
|
+
- `noenv wrangler [KEY...]` pushes secrets to your Worker with `wrangler secret bulk`. Without keys, it shows a list to pick from.
|
|
11
|
+
- A `[wrangler]` section in `.noenv` pushes the listed keys after each `secret set` and `secret rollback`.
|
|
12
|
+
- `noenv account add NAME URL [PREFIX...]` saves a deployment as a named account. Repositories under a prefix such as `github.com/acme` use it.
|
|
13
|
+
- `noenv account list`, `account default`, and `account remove`.
|
|
14
|
+
- `noenv auth NAME` signs in to one account.
|
|
15
|
+
- When you `cd` from a repository of one account to a repository of another, noenv unloads the first set of secrets and loads the second.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- A `cd` decrypts the last bundle on your machine and makes no network request. Before, each `cd` into a repository waited about one second for the Worker. A background refresh loads newer values when they arrive. zsh prints the result as soon as it lands. bash prints it at the next prompt.
|
|
20
|
+
- The shell hook does not start noenv when you `cd` inside the same repository or between directories outside a repository.
|
|
21
|
+
- `noenv init` creates a `.noenv` file. Commit it, so access problems show as messages instead of silence.
|
|
22
|
+
|
|
23
|
+
## 0.1.1 — 2026-11-01
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- The CLI is on npm as `@thisisamank/noenv-cli`. The command stays `noenv`.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- nenv is now noenv.
|
package/README.md
CHANGED
|
@@ -1,3 +1,58 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @thisisamank/noenv-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The command-line client for [noenv](https://github.com/thisisamank/noenv): encrypted environment variables that load when you `cd` into a repo, and unload when you leave.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
[Website](https://noenv.thisisamank.in) · [40-second demo](https://noenv.thisisamank.in/assets/tour.mp4)
|
|
8
|
+
|
|
9
|
+
```console
|
|
10
|
+
$ cd ~/code/backend
|
|
11
|
+
noenv: loaded 12 secrets for github.com/acme/backend (development)
|
|
12
|
+
$ npm run dev # your app sees DATABASE_URL, STRIPE_KEY, …
|
|
13
|
+
$ cd .. # and they are gone again
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
You need a noenv server. It runs on your own Cloudflare account; see [deploy noenv](https://github.com/thisisamank/noenv#get-started).
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
npm install -g @thisisamank/noenv-cli
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Requires Node.js 22 or newer.
|
|
25
|
+
|
|
26
|
+
## Connect your shell
|
|
27
|
+
|
|
28
|
+
Add these lines to `~/.zshrc` or `~/.bashrc`, using your server's URL:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
export NOENV_URL="https://<your-worker>.workers.dev"
|
|
32
|
+
eval "$(noenv shell zsh)" # or: noenv shell bash
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Open a new terminal and `cd` into a git repo. The first time, your browser opens so you can approve the terminal with your passkey.
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
| Command | What it does |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `noenv status` | Show the server, your account, and the current project |
|
|
42
|
+
| `noenv init` | Create a project for this repo and its first environment |
|
|
43
|
+
| `noenv secret set KEY` | Save a secret (the value is read without echo) |
|
|
44
|
+
| `noenv secret list` | List the secrets in this environment |
|
|
45
|
+
| `noenv secret history KEY` | List the versions of a secret |
|
|
46
|
+
| `noenv secret rollback KEY VERSION` | Restore an older version |
|
|
47
|
+
| `noenv migrate` | Move this repo's `.env` files into noenv |
|
|
48
|
+
| `noenv grant EMAIL ROLE` | Give someone access and share the key |
|
|
49
|
+
| `noenv revoke EMAIL` | Remove someone from this project |
|
|
50
|
+
| `noenv auth` | Sign in again |
|
|
51
|
+
|
|
52
|
+
The repo's git `origin` decides the project. The environment is `development` unless a `.noenv` file in the repo sets `environment = "staging"`, or you set `NOENV_ENVIRONMENT=staging` for one shell.
|
|
53
|
+
|
|
54
|
+
Changes made anywhere (this terminal, the dashboard, or a teammate) load at your next prompt.
|
|
55
|
+
|
|
56
|
+
## Security
|
|
57
|
+
|
|
58
|
+
Values are encrypted and decrypted on your machine. Your key lives in `~/.config/noenv`. The server stores only ciphertext.
|