https://github.com/sachin-duhan/zikkr
Sleek CLI tool with an interactive TUI that lets you quickly discover, select, and clone multiple GitHub org repositories with precision and speed.
https://github.com/sachin-duhan/zikkr
github golang terminal-ui tui
Last synced: 2 months ago
JSON representation
Sleek CLI tool with an interactive TUI that lets you quickly discover, select, and clone multiple GitHub org repositories with precision and speed.
- Host: GitHub
- URL: https://github.com/sachin-duhan/zikkr
- Owner: sachin-duhan
- Created: 2025-06-21T16:47:31.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-21T17:30:30.000Z (about 1 year ago)
- Last Synced: 2025-06-21T17:39:08.539Z (about 1 year ago)
- Topics: github, golang, terminal-ui, tui
- Language: Go
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Zikrr
Zikrr is a powerful command-line tool for efficiently cloning multiple repositories from GitHub organizations. It provides an interactive terminal user interface (TUI) for selecting and managing repository cloning operations.
## Features
- 🔐 Secure GitHub authentication with support for both classic and fine-grained PATs
- 🎯 Interactive repository selection with filtering capabilities
- 📊 Real-time progress tracking for clone operations
- 🚀 Pagination support for handling large organizations
- ⚡ Rate limit aware GitHub API integration
- 🎨 Beautiful terminal UI powered by bubbletea
## Installation
### Prerequisites
- Go 1.21 or higher
- Git
- GitHub Personal Access Token (classic or fine-grained)
### Building from Source
```bash
# Clone the repository
git clone https://github.com/sachin-duhan/zikrr.git
cd zikrr
# Build the binary
make build
# Or using go directly
go build -o zikrr ./cmd/zikrr
```
## Usage
### Basic Usage
```bash
# Using environment variable for token
export GITHUB_TOKEN=your_token_here
./zikrr
# Or passing token directly
./zikrr --token your_token_here
```
### Command Line Options
```bash
./zikrr [flags]
Flags:
--token string GitHub Personal Access Token
--org string GitHub Organization name (optional)
--log-level string Log level (debug, info, warn, error) (default "info")
```
### Interactive UI
1. **Organization Selection**: Enter the GitHub organization name you want to clone repositories from
2. **Repository Selection**: Browse and select repositories using:
- ↑/↓: Navigate repositories
- Space: Toggle repository selection
- Enter: Confirm selection
- /: Filter repositories
- q: Quit
3. **Progress View**: Monitor cloning progress with real-time status updates
## Configuration
Zikrr can be configured using environment variables or command line flags:
```bash
# Environment Variables
GITHUB_TOKEN=your_token_here
ZIKRR_LOG_LEVEL=debug
ZIKRR_ORG=your-org-name
```
## Development
### Project Structure
```
zikrr/
├── cmd/zikrr/ # Main application entry point
├── internal/ # Internal packages
│ ├── auth/ # Authentication handling
│ ├── cli/ # CLI and TUI components
│ ├── config/ # Configuration management
│ ├── git/ # Git operations
│ └── github/ # GitHub API client
└── pkg/ # Public packages
```
### Building and Testing
```bash
# Run tests
make test
# Build binary
make build
# Clean build artifacts
make clean
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
[Add your license here]