| Crates.io | safeguard |
| lib.rs | safeguard |
| version | 1.0.3 |
| created_at | 2025-06-27 02:18:33.865189+00 |
| updated_at | 2025-06-29 06:34:51.631234+00 |
| description | Secure file and credential management CLI with collections and tags |
| homepage | https://github.com/ozankasikci/secret-file-server |
| repository | https://github.com/ozankasikci/secret-file-server |
| max_upload_size | |
| id | 1728075 |
| size | 680,700 |
A secure file and credential management CLI tool with collections and tags for organization.
cargo install safeguard
Download pre-built binaries from GitHub Releases:
# macOS/Linux one-liner
curl -sSL https://raw.githubusercontent.com/yourusername/secret-file-server/main/install.sh | bash
# Configure server
safeguard config set server http://api.example.com
# Upload a file with organization
safeguard file upload document.pdf --collection "Important Docs" --tags "work,2024"
# List files with filtering
safeguard files --collection "Important Docs" --tags "work"
# Create and manage credentials
safeguard creds create db-password --collection "Production" --tags "database,critical"
# Search across everything
safeguard search "database" --collections "Production" --tags "critical"
safeguard upload <file> # Upload file
safeguard download <file-id> # Download file
safeguard files # List files
safeguard files --collection "Docs" # Filter by collection
safeguard files --tags "work,urgent" # Filter by tags
safeguard collection create "AWS Production"
safeguard collection list --tree
safeguard collection show <collection-id>
safeguard collection delete <collection-id>
safeguard tag list --with-counts
safeguard tag set-color "urgent" "#ff0000"
safeguard tag delete "old-tag"
safeguard creds create <name> # Create credential
safeguard creds list # List credentials
safeguard creds get <cred-id> # Get credential details
safeguard creds reveal <cred-id> # Reveal credential value
safeguard creds delete <cred-id> # Delete credential
safeguard organize file <file-id> --collection "New Collection" --add-tags "new-tag"
safeguard organize cred <cred-id> --tags "tag1,tag2" # Replace all tags
safeguard search "query" --collections "Prod,Dev" --tags "urgent"
safeguard search --tags "database" --created-after "2024-01-01"
The CLI stores configuration in:
~/.config/safeguard/config.toml~/Library/Application Support/safeguard/config.toml%APPDATA%/safeguard/config.tomlExample configuration:
[server]
url = "https://api.safeguard.example.com"
api_key = "your-api-key"
[client]
no_color = false
output_format = "table" # table, json, yaml
LOCKSMITH_SERVER_URL: Override server URLLOCKSMITH_API_KEY: Override API keyNO_COLOR: Disable colored outputCollections must be created explicitly and support hierarchical nesting:
safeguard collection create "Company Docs"
safeguard collection create "HR Docs" --parent "Company Docs"
Tags are automatically created when referenced:
# These tags are created automatically if they don't exist
safeguard upload file.pdf --tags "confidential,2024,quarterly-report"
# Clone repository
git clone https://github.com/yourusername/secret-file-server.git
cd secret-file-server/client
# Run from source
cargo run -- --help
# Run tests
cargo test
# Build release
cargo build --release
# Create hierarchical collections
safeguard collection create "Projects"
safeguard collection create "Project Alpha" --parent "Projects"
# Upload file with full organization
safeguard upload presentation.pptx \
--collection "Project Alpha" \
--tags "presentation,q4,client-facing"
# Find files across multiple dimensions
safeguard search "alpha" --collections "Projects" --tags "q4"
# Store database credentials
safeguard creds create prod-db \
--collection "Production" \
--tags "database,postgresql,critical"
# Organized credential listing
safeguard creds list --collection "Production" --tags "critical"
# Secure credential reveal
safeguard creds reveal prod-db # Prompts for confirmation
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.