Vigil Client
Vigil Client extends Vigil Core with platform integration, enabling collaborative artifact management and provenance tracking across teams.
Overview
Vigil Client bridges the cryptographic foundation of Vigil Core with platform features:
- Authentication - Secure login to Vigil platform
- Artifact Registry - Create, search, and manage typed artifacts
- Provenance Links - Track relationships between artifacts
- Sync Operations - Push/pull artifacts and receipts
- Plugin System - Extensible integrations (Benchling, HuggingFace, etc.)
Installation
# Install vigil-client (includes vigil-core)
pip install vigil-client
# Or install vigil-core separately
pip install vigil-core
Quick Start
1. Authenticate
# Interactive login
vigil client login
# Check authentication status
vigil client whoami
2. Push Artifacts
# Push local receipts and artifacts to the platform
vigil client push
# Push specific receipt
vigil client push app/code/receipts/receipt_20250101T120000Z.json
3. Search and Download
# Search for artifacts
vigil client artifacts-search "genomics"
# Download an artifact
vigil client pull artifact-id
4. Link Artifacts
# Create provenance relationships
vigil client link dataset-123 run-456 --relation INPUT_OF
vigil client link run-456 model-789 --relation OUTPUT_OF
Commands
Authentication
vigil client login # Interactive authentication
vigil client logout # Clear credentials
vigil client whoami # Show current user info
Artifact Management
vigil client artifacts # List artifacts
vigil client artifacts-get <id> # Get artifact details
vigil client artifacts-search <query> # Search artifacts
vigil client pull <artifact-id> # Download artifact
vigil client push # Upload receipts/artifacts
Provenance
vigil client link <from> <to> --relation <type> # Create relationship
Configuration
vigil client config # Show current config
vigil client config-set-project <id> # Set default project
vigil client config-set-remote <url> # Set remote URL
Python API
from vigil_client import VigilClient
from vigil_client.auth import auth_manager
from vigil_client.models import Artifact, ArtifactType
# Get authenticated client
config = auth_manager.get_client_config()
client = VigilClient(config.remote)
# Register artifact
artifact = Artifact(
name="my-dataset",
type=ArtifactType.DATASET,
uri="s3://my-bucket/data/",
description="Training dataset"
)
result = client.create_artifact(artifact)
print(f"Created artifact: {result.id}")
# Create provenance link
from vigil_client.models import Link, LinkType
link = Link(
from_artifact_id="dataset-123",
to_artifact_id="run-456",
type=LinkType.INPUT_OF
)
client.create_link(link)
Plugin System
Extend Vigil with custom integrations:
from vigil_client.plugins import BasePlugin, plugin_manager
class BenchlingPlugin(BasePlugin):
def on_artifact_push(self, artifact):
# Custom Benchling integration
if artifact.type == "dataset":
self.sync_to_benchling(artifact)
# Install plugin
plugin_manager.install_plugin(
"benchling",
"my_plugins.benchling",
{"api_key": "benchling-token"}
)
Integration with Vigil Core
Vigil Client extends Vigil Core with platform integration through a unified CLI:
# Core commands (from vigil-core)
vigil run
vigil promote
vigil verify
# Platform commands (from vigil-client)
vigil client login
vigil client push
vigil client pull
The unified CLI automatically detects available packages and shows appropriate commands.
Configuration
Configuration is stored in ~/.vigil/config.json:
{
"auth": {
"token": "jwt-token",
"username": "user",
"organization": "org"
},
"remote": {
"base_url": "https://api.vigil.app",
"timeout": 30
},
"default_project": "proj-123"
}
Security
- Token Storage: API tokens are stored securely using system keyring
- HTTPS Only: All platform communication uses HTTPS
- Scoped Access: Platform enforces project and organization boundaries
Development
# Install in development mode
pip install -e packages/vigil-core-client
# Run tests
pytest packages/vigil-core-client/tests/
# Type checking
mypy packages/vigil-core-client/src/
Architecture
vigil-client/
├── api/ # REST API client
├── auth/ # Authentication & config
├── cli/ # CLI commands
├── models/ # Data models
├── plugins/ # Extension system
└── extension.py # Integration with vigil-core
See Also
Release files for vigil-client 0.3.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vigil_client-0.3.10.tar.gz | 46.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vigil_client-0.3.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.0 kB
Release files / vigil_client-0.3.10.tar.gz
| Download URL | vigil_client-0.3.10.tar.gz |
|---|---|
| Size | 46.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c677116306dcf7ead3b47f2406f7f410ba20a46ff5c93d5567e03c331b8d0dc
|
|
BLAKE2b-256 checksum How to use checksums |
670167448fb88edfda828fe4f30d573016464e47c36e05c12721a66bcc870aaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / vigil_client-0.3.10-py3-none-any.whl
| Download URL | vigil_client-0.3.10-py3-none-any.whl |
|---|---|
| Size | 45.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1191b7565b6c74c6d9ee1577c5761ff48c5e24eee048c986bac352036a63f55
|
|
BLAKE2b-256 checksum How to use checksums |
f048335df5e0ebef02524397aa50db46d94434b5a4add866e39c313c2bb5db92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|