Skip to main content

veilfile CLI

Command-line client for Veilfile. Single file, standard library only — no dependencies to audit.

Install

pip install veilfile

Or run the script directly with any Python 3.9+:

python3 veilfile.py login

Usage

veilfile login    # browser approval flow; stores the API key locally
veilfile logout   # revoke the key on the server; delete the local copy
veilfile status   # confirm the stored key is valid (never prints it)

veilfile login prints a code and opens the verification page in your browser. Approve it there and the terminal picks up the API key — you never paste a secret. veilfile login --print-key prints the raw key too, for the rare case you explicitly need it (it is never printed otherwise).

The key is stored in a 0600 credentials file (~/.config/veilfile on macOS/Linux, %APPDATA%\veilfile on Windows). Setting VEILFILE_API_KEY overrides the file, matching the MCP setup docs. --base-url (or VEILFILE_BASE_URL) points the CLI at a local dev server.

Distribution notes

  • pip (recommended): pip install veilfile pulls a versioned package over TLS from PyPI. Zero dependencies, so the supply chain is one package.
  • Direct download: fetch veilfile.py from the repo, read it, run it. Reasonable for the cautious; you get to inspect every line first.
  • curl-to-shell: not recommended. Piping remote code straight into a shell skips integrity verification entirely. For a security-conscious buyer that is the wrong default, so we do not publish a one-liner.

Publishing a new release (founder only)

The founder owns the PyPI account and runs the upload from his own machine — PyPI tokens cannot live in the Secure Vault, so this step is never automated.

cd cli
python3 -m build            # builds sdist + wheel into dist/
twine check dist/*          # metadata sanity check
twine upload dist/*         # username: __token__, password: <PyPI API token>

Rules: bump version in both pyproject.toml and __version__ in veilfile.py before building; never upload a version number that already exists on PyPI (0.1.0 was the placeholder, 0.2.0 is this release); verify twine check is clean before uploading.

Development

cd cli
python3 -m unittest discover -s tests -t .

Metadata

Release files for veilfile 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for veilfile 0.2.0
File Size Uploaded
veilfile-0.2.0.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for veilfile 0.2.0
File Interpreter ABI Platform
veilfile-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / veilfile-0.2.0.tar.gz

Download URL veilfile-0.2.0.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e03530bb84151ac6fe32eff053e1acbce3c6d8a66c93535461c7f8526aac9459
BLAKE2b-256 checksum
How to use checksums
0e230695f7b2cf4c1a6e9a82f932364efb948b58b777f0f0425783f055a1d3ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / veilfile-0.2.0-py3-none-any.whl

Download URL veilfile-0.2.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f39e0761a746ae26b0e40d8ff6d95ef8753f0dc2dce333f25869aea3096227ad
BLAKE2b-256 checksum
How to use checksums
d703a72be91ea00171c11e6c974567067d4775461fe2eda47a2213a56256d97d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page