| Crates.io | swiss-knife |
| lib.rs | swiss-knife |
| version | 0.2.2 |
| created_at | 2025-08-24 19:19:42.063159+00 |
| updated_at | 2026-01-26 01:14:07.401193+00 |
| description | A collection of useful Rust CLI tools for various automation tasks |
| homepage | https://github.com/tyrchen/swiss-knife |
| repository | https://github.com/tyrchen/swiss-knife |
| max_upload_size | |
| id | 1808700 |
| size | 262,795 |
A collection of useful Rust CLI tools for various automation tasks. Built with performance and user experience in mind.
Swiss Knife is a growing collection of command-line utilities written in Rust, designed to handle common tasks efficiently with beautiful user interfaces.
A high-performance tool for video transcription and AI-powered content generation.
Features:
Generate images using OpenAI's DALL-E API.
A smart S3 uploader with intelligent file comparison and pre-signed URL generation.
Features:
cargo install swiss-knife
# Clone the repository
git clone https://github.com/tyrchen/swiss-knife
cd swiss-knife
# Build in release mode
cargo build --release
# Install to cargo bin directory
cargo install --path .
# Set up OpenAI API key
export OPENAI_API_KEY="your-api-key"
# Process a video file
convert <video_file>
# Example
convert ~/Videos/lecture.mp4
Output Example:
π¬ Processing video: "lecture.mp4"
β Analyzing video duration...
Video duration: 2500 seconds
β οΈ Video longer than 1300 seconds, processing in chunks...
Will create 2 chunks
β [########################################] 2/2 chunks processed
β
All chunks merged into complete transcript
β Generating content with GPT-5-mini...
β
Content generated successfully!
β¨ Processing complete!
π¦ All files saved in /tmp
# Create .env file with AWS configuration
cat > .env << EOF
AWS_REGION=us-west-2
S3_BUCKET=my-bucket
S3_TARGET_PATH=uploads
EOF
# Upload a single file
s3upload ./video.mp4
# Upload entire directory (only mp4 and mov files by default)
s3upload ./videos
# Upload with custom file extensions
s3upload . -e mp4,mov,avi
# Generate pre-signed URLs only (no upload)
s3upload ./video.mp4 --url-only
Output Example:
π¦ Target: s3://my-bucket/uploads/
β video.mp4 (15.2 MB)
π https://my-bucket.s3.amazonaws.com/uploads/video.mp4?X-Amz-...
β» video2.mp4 (skipped - identical, 10.5 MB)
π https://my-bucket.s3.amazonaws.com/uploads/video2.mp4?X-Amz-...
Summary: 1 uploaded, 1 skipped, 0 failed
For detailed documentation, see specs/s3upload-README.md
Contributions are welcome! Feel free to:
MIT License - see LICENSE file for details.
Tyr Chen tyr.chen@gmail.com