This is a submission for the GitHub Copilot CLI Challenge
What I Built
SwiftCut is a local-first desktop application that automates the "Rough Cut" phase of video editing. It uses AI-powered audio analysis to instantly detect and remove silent segments from videos β no cloud uploads, no subscriptions, complete privacy.
The Problem I Solved
As a content creator, I spent hours manually cutting out silent pauses from my podcast recordings, tutorial videos, and vlogs. The workflow was:
- Import video into heavy editing software
- Scrub through timeline looking for silence
- Manually mark and delete each silent segment
- Repeat 50+ times per video π©
SwiftCut automates this entire process in seconds.
Key Features
π― Smart Silence Detection β FFmpeg-powered audio analysis with configurable thresholds
β‘ Instant Results β Process a 10-minute video in under 5 seconds
π 100% Local & Private β Your videos never leave your machine
ποΈ Content Presets β Optimized settings for Podcasts, Tutorials, Vlogs, and Interviews
π€ AI Natural Language Commands β Tell it what to do: "Remove all silences" or "Make a 30-second clip"
π¬ Reel Cutter β Split long videos into Instagram Reels, TikTok, or YouTube Shorts
ποΈ Voice Commands β Speak your edits using Web Speech API
β©οΈ Full Undo/Redo β Never lose your work
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Tauri v2 (Rust + WebView) |
| Frontend | React 19 + TypeScript |
| Styling | Tailwind CSS v4 |
| State | Zustand |
| Video Processing | FFmpeg |
| AI | Multi-provider (Local, Ollama, OpenAI, Copilot SDK) |
Demo
π₯ Video Walkthrough
βΆοΈ Watch SwiftCut in Action
Screenshots
Landing Page β Clean, focused interface
Silence Detection β Visual timeline with detected segments
AI Commands β Natural language video editing
Reel Cutter β Split videos for social media
Try It Yourself
# Clone the repo
git clone https://github.com/yourusername/swiftcut.git
cd swiftcut
# Install dependencies
npm install
# Run in development
npm run tauri dev
# Build for production
npm run tauri:build
Requirements: Node.js 22+, Rust 1.93+, FFmpeg
My Experience with GitHub Copilot CLI
How Copilot CLI Transformed My Development
Building SwiftCut would have taken weeks without GitHub Copilot CLI. Here's how I used it:
1. FFmpeg Command Generation
FFmpeg has notoriously complex syntax. Instead of Googling for hours, I asked Copilot:
gh copilot suggest "ffmpeg command to detect silence below -30dB lasting more than 0.5 seconds"
Result:
ffmpeg -i input.mp4 -af "silencedetect=noise=-30dB:d=0.5" -f null -
This became the core of my silence detection algorithm.
2. Rust Backend Development
I'm primarily a TypeScript developer. Writing Rust for Tauri was daunting, but Copilot CLI helped:
gh copilot explain "how to parse FFmpeg stderr output in Rust and extract timestamps"
It gave me a complete regex pattern and parsing logic that I adapted for my lib.rs.
3. Complex Filter Chains
Building the export filter was tricky. I needed to keep non-silent segments and remove gaps:
gh copilot suggest "ffmpeg select filter to keep multiple time ranges and close gaps"
Result:
-vf "select='between(t,0,5)+between(t,8,20)',setpts=N/FRAME_RATE/TB"
-af "aselect='between(t,0,5)+between(t,8,20)',asetpts=N/SR/TB"
4. AI Planner System Prompt
I used Copilot to help design the system prompt for my AI planner:
gh copilot suggest "system prompt for an AI that converts natural language to FFmpeg commands"
This helped me structure the SWIFTCUT_SYSTEM_PROMPT that powers the natural language interface.
5. Cross-Platform Build Configuration
Setting up GitHub Actions for multi-platform builds:
gh copilot suggest "github actions workflow to build tauri app for mac windows and linux"
Got a working CI/CD pipeline in minutes instead of hours.
Impact on Development Experience
| Metric | Without Copilot CLI | With Copilot CLI |
|---|---|---|
| FFmpeg learning curve | 2-3 days | 2 hours |
| Rust backend | 1 week | 2 days |
| Total development time | ~3 weeks | ~5 days |
| Stack Overflow visits | 100+ | ~10 |
The "Aha!" Moment
The breakthrough came when I realized I could use Copilot CLI as a planning agent within the app itself. The system prompt I developed with Copilot's help now powers SwiftCut's AI command interface:
User: "Remove all silences longer than 1 second"
β
AI Planner (Copilot-inspired prompt)
β
FFmpeg: select='between(t,0,5)+between(t,8,20)...'
β
Exported video with silences removed!
What I'd Tell Other Developers
- Don't just ask for code β Ask Copilot CLI to explain concepts first
-
Use
suggestfor commands β Especially for complex CLI tools like FFmpeg, Docker, Git -
Iterate with
explainβ If the first suggestion isn't perfect, ask it to explain and refine - Build your own prompts β The system prompts Copilot uses are great templates for your AI features
Technical Deep Dive
How Silence Detection Works
ORIGINAL VIDEO (10 minutes)
βββββββββββββββββββββββββββββββββββββββββββββββββ
β² β² β² β² β²
silence silence silence silence silence
β FFmpeg silencedetect
EXPORTED VIDEO (7 minutes)
βββββββββββββββββββββββββββββββββββββββββββββ
(All silence removed β 30% shorter!)
AI Provider Architecture
SwiftCut supports multiple AI backends:
type AIProvider = 'local' | 'copilot' | 'ollama' | 'openai';
// Switch providers in settings
setAIProvider({
provider: 'ollama',
baseUrl: 'http://localhost:11434',
modelName: 'llama3.2'
});
| Provider | Use Case |
|---|---|
| Local | Offline, rule-based processing |
| Ollama | Privacy-focused local LLM |
| OpenAI | Most capable, requires API key |
| Copilot SDK | Coming soon! |
What's Next
- [ ] Waveform visualization in timeline
- [ ] Transcript-based editing ("Find where I say 'demo'")
- [ ] Batch processing multiple videos
- [ ] Plugin system for custom filters
- [ ] Mobile companion app
Links
- π GitHub: github.com/NishikantaRay/swiftcut
- πΊ Demo Video: youtube.com/watch?v=tXmQofWy3P0
Acknowledgments
Built with β€οΈ using:
- Tauri β Amazing desktop framework
- FFmpeg β The backbone of video processing
- GitHub Copilot CLI β My AI pair programmer
What editing task takes you the longest? Let me know in the comments β maybe SwiftCut can help!





Top comments (0)