A modern, secure, and user-friendly BitTorrent client with a beautiful web interface, written in Go and React.
- π Modern Web UI - Beautiful, responsive interface built with React and Material-UI
- π Real-time Updates - Live progress tracking via WebSocket
- π― Smart File Selection - Choose which files to download within torrents
- π Cross-platform - Works on Windows, macOS, and Linux
- π Security First - VPN binding, kill switch, and authentication support
- π¦ Single Binary - No dependencies, easy deployment
- π Dark Mode - Easy on the eyes during late-night downloads
- π Multi-language - Support for English and Japanese
- π Comprehensive API - RESTful API with OpenAPI documentation
- β‘ High Performance - Efficient concurrent downloads with piece prioritization
Download the latest release for your platform from the releases page.
Requirements:
- Go 1.23 or later
- Node.js 20 or later (for building the web UI)
git clone https://github.com/ayutaz/orochi.git
cd orochi
make build# Start with default settings
./orochi
# Start on a different port
./orochi --port 9000
# Specify download directory
./orochi --download-dir /path/to/downloads
# Show version information
./orochi --versionThen open http://localhost:8080 in your browser.
By default, Orochi runs in stub mode for testing. To use actual BitTorrent functionality:
./orochi --realOrochi can be configured through:
- Command-line flags
- Web interface settings
- Configuration file (auto-created on first run)
Key settings:
- Download Directory: Where to save downloaded files
- Port: BitTorrent listen port (default: 6881)
- Max Connections: Maximum peer connections
- Speed Limits: Upload/download speed restrictions
- VPN Binding: Restrict traffic to specific network interface
This project follows Test-Driven Development (TDD) principles.
- Go 1.23 or higher
- Make (optional)
make testmake coverageFor detailed usage instructions, please see the User Guide (ζ₯ζ¬θͺ).
Once the server is running, you can access the interactive API documentation at:
http://localhost:8080/api-docs
The API documentation is generated using OpenAPI 3.0 specification and provides:
- Complete API reference with all endpoints
- Request/response schemas
- Interactive API testing interface (Swagger UI)
- WebSocket endpoint documentation
This software is designed for downloading and sharing files using the BitTorrent protocol. The use of this software for downloading or distributing copyrighted material without permission is illegal. Users are responsible for complying with local laws and regulations.
MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Write tests for your changes
- Implement your changes
- Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Inspired by BitThief's simplicity
- Built with anacrolix/torrent