open-index/open-npm huggingface dataset:
npm package: @oc-forge/secret
Description: Infisical secret manager CLI with local caching
Author: 小橘 🍊
Latest version: 0.2.0

# @oc-forge/secret

🔐 Infisical secret manager CLI with local caching.

Manage secrets from [Infisical](https://infisical.com/) with a simple CLI. Caches secrets locally (24h TTL) to minimize API calls.

## Install

```bash
# Requires Bun runtime
npm install -g @oc-forge/secret
```

## Setup

Create a config file at `~/.config/oc-secret/config.json`:

```json
{
  "clientId": "<your-infisical-client-id>",
  "clientSecret": "<your-infisical-client-secret>",
  "projectId": "<your-infisical-project-id>",
  "env": "dev"
}
```

Or use environment variables:

```bash
export INFISICAL_CLIENT_ID=xxx
export INFISICAL_CLIENT_SECRET=xxx
export INFISICAL_PROJECT_ID=xxx
export INFISICAL_ENV=dev  # optional, defaults to "dev"
```

## Usage

```bash
# Get a secret (cache-first)
secret get MY_API_KEY

# Get a secret (skip cache)
secret get MY_API_KEY --fresh

# Set/update a secret
secret set MY_API_KEY "new-value"

# List all secret keys
secret list

# List with values
secret list --show

# Sync all secrets to local cache
secret sync

# Run a command with all secrets as env vars
secret exec -- node server.js
```

## How it works

1. **Cache-first**: `secret get` checks local cache (`~/.config/oc-secret/cache.json`) before hitting the API
2. **24h TTL**: Cache entries expire after 24 hours (configurable via `ttlMs` in config)
3. **Upsert**: `secret set` creates or updates the secret on Infisical and updates local cache
4. **Exec**: `secret exec` injects all secrets as environment variables into a child process

## Output

- Secret values go to **stdout** (clean, no decoration)
- Status messages go to **stderr** (won't pollute `$(secret get KEY)`)

```bash
# Safe to use in shell substitution
TOKEN=$(secret get MY_TOKEN)
```

## Security

- Cache file is chmod 600 (owner-only read/write)
- Credentials never leave your machine
- Universal Auth (machine identity) — no user login required

## License

MIT — 小橘爪作 🐾
npm package: @oc-forge/sigil-cli
Description: CLI for Sigil capability virtualization platform on Cloudflare Workers
Author: 小橘
Latest version: 0.1.1

# sigil-cli

CLI for [Sigil](https://sigil.shazhou.workers.dev) — a capability virtualization platform on Cloudflare Workers.

## Install

```bash
npm install -g @oc-forge/sigil-cli
```

## Configuration

| Environment Variable | Default | Description |
|---|---|---|
| `SIGIL_URL` | `https://sigil.shazhou.workers.dev` | Sigil base URL |
| `SIGIL_TOKEN` | — | Deploy token (or auto-read via `secret get SIGIL_DEPLOY_TOKEN`) |

## Commands

### `sigil health`
Check platform health.
```bash
sigil health
```

### `sigil query [search]`
Search or list capabilities.
```bash
sigil query                        # list all
sigil query "exchange rate"        # find mode
sigil query "finance" --explore    # explore mode
sigil query --limit 5
```

### `sigil list`
Alias for `sigil query` (list all capabilities).

### `sigil deploy`
Deploy a capability in two modes:

**File mode** — deploy raw JS/TS code:
```bash
sigil deploy hello.js --name hello --desc "greeting endpoint" --tags utility,text
```

**Schema mode** — deploy with structured schema + execute function:
```bash
sigil deploy --name calc --desc "Simple calculator" \
  --schema '{"properties":{"expr":{"type":"string"}},"required":["expr"]}' \
  --execute 'return JSON.stringify({result: eval(input.expr)})'

# Or load execute from file:
sigil deploy --name calc --desc "Simple calculator" \
  --schema schema.json --execute-file calc.js
```

Options: `--name`, `--desc`, `--tags`, `--type` (persistent/normal/ephemeral), `--ttl`, `--schema`, `--execute`, `--execute-file`, `--examples`

### `sigil invoke <name>`
Invoke a capability.
```bash
sigil invoke greet --name Scott --lang zh
sigil invoke currency --from USD --to CNY --amount 100
sigil invoke calc --expr "2+2"
```

Use `--method POST` for POST requests.

### `sigil inspect <name>`
Show detailed info about a capability.
```bash
sigil inspect greet
```

### `sigil remove <name>`
Remove a deployed capability.
```bash
sigil remove greet
```

## Output

All commands support `--json` for raw JSON output (useful for piping).

## License

MIT — 小橘 🍊 (NEKO Team)