Everything you need to manage secrets from the command line and via API.
Get up and running in under 60 seconds.
$ pip install configshield
"color:#6b7280"># Or download directly
$ curl -o configshield.py https://configshield.app/cli/configshield.pyGet your API key from Dashboard → API Keys
$ configshield config --api-key cs_live_your_key_here
DONE API key saved: cs_live_your_key_...$ configshield pull --project my-app --env production
[1] Finding project 'my-app'...
[2] Pulling secrets from my-app (production)...
[3] Writing 24 secrets to .env.production...
DONE Pulled 24 secrets to .env.productionThe ConfigShield CLI has zero dependencies -- it uses only the Python standard library.
$ pip install configshield"color:#6b7280"># Download the single-file CLI
$ curl -o configshield.py https://configshield.app/cli/configshield.py
"color:#6b7280"># Make executable (macOS/Linux)
$ chmod +x configshield.py
"color:#6b7280"># Run
$ python configshield.py --version
configshield 1.0.0Configuration is stored in ~/.configshield/config.json.
$ configshield config --api-key cs_live_xxxxxxxxxxxxx"color:#6b7280"># So you don't need --project every time
$ configshield config --default-project my-app$ configshield config --api-url https://your-api.example.com$ configshield config
Current Configuration
========================================
API Key: cs_live_abc12345...
API URL: https://api.configshield.app
Default Project: my-app
Config File: /home/user/.configshield/config.json{
"api_key": "cs_live_xxxxxxxxxxxxx",
"api_url": "https://api.configshield.app",
"default_project": "my-app"
}Download secrets from ConfigShield and write them to a local .env file.
$ configshield pull --project my-app --env productionThis creates .env.production in the current directory. Development environment creates .env by default.
$ configshield pull --project my-app --env staging --output .env.staging$ configshield pull --project my-app --env production --stdout
DATABASE_URL=postgresql://user:pass@host:5432/db
REDIS_URL=redis://default:xxx@redis:6379
STRIPE_KEY=sk_live_xxxxxxxxx
"color:#6b7280"># Pipe to another command
$ configshield pull --project my-app --stdout | grep DATABASE"color:#6b7280"># Skip the "overwrite?" prompt
$ configshield pull --project my-app --env production --force| Flag | Short | Description |
|---|---|---|
--project | -p | Project name (or use default) |
--env | -e | Environment: development, staging, production |
--output | -o | Output file path (default: .env or .env.{env}) |
--stdout | Print to stdout instead of file | |
--force | -f | Overwrite without prompting |
Upload a local .env file to ConfigShield.
"color:#6b7280"># Push .env to a project
$ configshield push --project my-app --env development
[1] Reading .env...
INFO Found 15 secrets in .env
[2] Finding project 'my-app'...
[3] Pushing 15 secrets to my-app (development)...
DONE Imported 15 secrets, skipped 0$ configshield push --project my-app --env production --file .env.production| Command | Description |
|---|---|
configshield config | View or set configuration (API key, URL, default project) |
configshield list | List all your projects |
configshield pull | Pull secrets to a .env file |
configshield push | Push a .env file to ConfigShield |
configshield status | Check connection and account info |
configshield --version | Show CLI version |
Use ConfigShield in your deployment pipeline to pull secrets at build time.
name: Deploy
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install ConfigShield CLI
run: pip install configshield
- name: Pull production secrets
env:
CONFIGSHIELD_API_KEY: ${{ secrets.CONFIGSHIELD_API_KEY }}
run: |
configshield config --api-key $CONFIGSHIELD_API_KEY
configshield pull --project my-app --env production --force
- name: Deploy
run: npm run deployFROM python:3.12-slim
"color:#6b7280"># Install ConfigShield CLI
RUN pip install configshield
"color:#6b7280"># Pull secrets at build time
ARG CONFIGSHIELD_API_KEY
RUN configshield config --api-key $CONFIGSHIELD_API_KEY
RUN configshield pull --project my-app --env production --force
"color:#6b7280"># Your app
COPY . /app
WORKDIR /app
CMD ["python", "main.py"]"color:#6b7280"># Set your API key as a Railway variable
$ railway variables set CONFIGSHIELD_API_KEY=cs_live_xxx
"color:#6b7280"># In your start script, pull secrets first
$ configshield config --api-key $CONFIGSHIELD_API_KEY && configshield pull --project my-app --env production --force && npm startBase URL: https://api.configshield.app
Authentication: X-API-Key: cs_live_xxx header
Register, login, and manage your account.
/api/auth/register/api/auth/login/api/auth/me/api/auth/refresh/api/auth/forgot-password/api/auth/reset-password/api/auth/preferencesCreate and manage projects.
/api/projects/api/projects/api/projects/:id/api/projects/:id/api/projects/:idCreate, read, update, and delete secrets within a project.
/api/projects/:id/secrets/api/projects/:id/secrets/api/projects/:id/secrets/:sid/api/projects/:id/secrets/:sid/api/projects/:id/secrets/:sid/api/projects/:id/secrets/import/api/projects/:id/secrets/exportManage API keys for programmatic access.
/api/auth/api-keys/api/auth/api-keys/api/auth/api-keys/:id$ curl -s https://api.configshield.app/api/projects \
-H "X-API-Key: cs_live_your_key" | python -m json.tool$ curl -X POST https://api.configshield.app/api/projects/PROJECT_ID/secrets \
-H "X-API-Key: cs_live_your_key" \
-H "Content-Type: application/json" \
-d '{"key": "DATABASE_URL", "value": "postgresql://...", "description": "Main database"}'$ curl -s https://api.configshield.app/api/projects/PROJECT_ID/secrets/export \
-H "X-API-Key: cs_live_your_key" | python -c "import sys,json; print(json.load(sys.stdin)['content'])"$ curl -X POST https://api.configshield.app/api/projects/PROJECT_ID/secrets/import \
-H "X-API-Key: cs_live_your_key" \
-H "Content-Type: application/json" \
-d "{\"env_text\": \"$(cat .env)\"}"$ curl -X PATCH https://api.configshield.app/api/auth/preferences \
-H "X-API-Key: cs_live_your_key" \
-H "Content-Type: application/json" \
-d '{"daily_digest": false}'We're here to help you get the most out of ConfigShield.