Pincer Engine Documentation
Welcome to the Pincer Engine docs. Start from the top and work your way down — everything is numbered in reading order.
Built for Grabbit
I originally developed the Pincer engine to power my native macOS Download Manager, Grabbit. If you are looking for a beautiful, polished GUI that leverages the full power of this engine, check it out at grabbit.fyi!
Getting Started
- How It Works — A jargon-free look at what Pincer does under the hood.
- User Guide — Start downloading files in minutes.
- CLI Reference — Every flag and option, with examples.
JSON-RPC API
How to control Pincer programmatically over WebSocket.
- Connecting — WebSocket URL, port, and token authentication.
- Managing Downloads — Adding, pausing, removing, and queuing tasks.
- Checking Status — Querying progress, file lists, and global stats.
- Configuration — Engine defaults, task options, and system keys.
- Advanced Features — URL resolution, format conversion, Metalink, FTP/SFTP, and more.
- Events — Real-time WebSocket notifications.
- System Controls — Version info, shutdown, session saves, and batch calls.
Guides
Deep-dive walkthroughs for specific use cases.
- Session & Resume — How auto-save and download resumption work.
- Swift Integration — Embedding Pincer in a macOS Swift/SwiftUI app.
- API Comparison — Pincer’s methods mapped against standard download engines.
Contributing
Everything you need to contribute code to Pincer.
- Getting Started — Setup, code style, and PR workflow.
- Architecture — System design, modules, and concurrency model.
- Testing — Test suite architecture and how to run tests.
- Build & Release — Compiling from source and cutting releases.
- Roadmap — Dependency migration strategy and optimization paths.
- Feature Status — What’s done, what’s next.
License
Pincer Engine is free and open-source software licensed under the GNU General Public License v3.0 (GPLv3).
