ClockifyCli 1.0.6
See the version list below for details.
dotnet tool install --global ClockifyCli --version 1.0.6
dotnet new tool-manifest
dotnet tool install --local ClockifyCli --version 1.0.6
#tool dotnet:?package=ClockifyCli&version=1.0.6
nuke :add-package ClockifyCli --version 1.0.6
Clockify CLI
A powerful command-line interface for managing time entries between Clockify, Jira, and Tempo. Built with .NET 8 and featuring a beautiful, interactive terminal experience powered by Spectre.Console.
⨠Features
- đ Upload time entries from Clockify to Tempo with smart deduplication
- đ Add new tasks to Clockify directly from Jira issues
- đ List archivable tasks based on completed Jira status
- âąī¸ View current status of in-progress time entries
- âļī¸ Start timers with task selection and descriptions
- âšī¸ Stop running timers with confirmation and feedback
- đ Weekly time tracking overview with totals and averages
- đ Secure configuration with encrypted credential storage
- đ¨ Beautiful CLI with colors, progress bars, and interactive prompts
- đĄī¸ Safe operations with confirmation prompts and validation
đ Quick Start
Prerequisites
- .NET 8.0 Runtime or later
- Access to:
- Clockify workspace
- Jira instance (with API access)
- Tempo (for time tracking)
Installation
- Clone the repository:git clone https://github.com/yourusername/ClockifyCli.git cd ClockifyCli
- Build the project:dotnet build src/ClockifyCli/ClockifyCli.csproj -c Release
- Run the application:dotnet run --project src/ClockifyCli/ClockifyCli.csproj
First-Time Setup
Before using any commands, you need to configure your API credentials:
Interactive setup - you'll be prompted for each credential
clockify-cli config set
View current configuration
clockify-cli config view You'll need to provide:
- Clockify API Key - From Clockify â Profile Settings â API
- Jira Username - Your Jira email address
- Jira API Token - From Atlassian â Account Settings â Security â API tokens
- Tempo API Key - From Tempo â Settings â API Integration
đ Commands
Configuration Management
config set
Interactive setup of API keys and credentials (required first step). clockify-cli config set
config view
Display current configuration with masked sensitive values. clockify-cli config view
Time Management
start
Start a new time entry by selecting from available tasks across all projects. clockify-cli start Features:
- Lists all available tasks organized by project
- Includes option to start timer without a specific task (project-only)
- Allows adding optional description
- Prevents starting if a timer is already running
- Shows confirmation before starting
- Displays sorted list of projects and tasks for easy selection
stop
Stop the currently running time entry in Clockify. clockify-cli stop Features:
- Shows details of the currently running timer before stopping
- Displays project, task, description, and elapsed time
- Requires confirmation before stopping
- Shows final duration after stopping
- Gracefully handles when no timer is running
status
Display current in-progress time entry from Clockify. clockify-cli status Shows detailed information about the currently running time entry, including:
- Project and task name
- Description
- Start time
- Elapsed duration
- Real-time updates
If no time entry is currently running, displays a helpful message.
week-view
Display current week's time entries from Clockify with totals and daily averages. clockify-cli week-view Shows a detailed table of time entries grouped by date for the current week (Monday-Sunday), including:
- Daily breakdowns with project, task, and description
- Duration for each entry
- Daily totals and week total
- Average hours per working day
upload-to-tempo
Upload time entries from Clockify to Tempo with smart deduplication.
Upload last 14 days (default)
clockify-cli upload-to-tempo
Upload specific number of days
clockify-cli upload-to-tempo --days 7
Upload with orphaned entry cleanup (use with caution)
clockify-cli upload-to-tempo --days 30 --cleanup-orphaned Options:
-d, --days <number>
- Number of days to upload (default: 14)--cleanup-orphaned
- Remove orphaned entries without Clockify IDs
Task Management
add-task
Add a new task to Clockify from a Jira issue with interactive project selection. clockify-cli add-task This command will:
- Show available Clockify projects
- Prompt for Jira issue reference or URL
- Fetch issue details from Jira
- Create the task with format:
{IssueKey} [{Summary}]
archive-completed-jiras
List tasks that can be archived based on their completed Jira status. clockify-cli archive-completed-jiras Shows a table of tasks where the corresponding Jira issue is marked as "Done".
Help
Get help for any command: clockify-cli --help clockify-cli upload-to-tempo --help clockify-cli config --help clockify-cli archive-completed-jiras --help
đ§ Configuration
Secure Storage
All credentials are stored securely using AES-256 encryption in:
- Windows:
%APPDATA%\ClockifyCli\clockify-config.dat
- macOS:
~/.config/ClockifyCli/clockify-config.dat
- Linux:
~/.config/ClockifyCli/clockify-config.dat
API Keys Setup
Clockify API Key
- Go to Clockify â Profile Settings â API
- Copy your API key
Jira API Token
- Go to Atlassian Account Settings
- Create a new API token
- Use your Jira email as username
Tempo API Key
- Go to Tempo â Settings â API Integration
- Generate a new API token
đī¸ Architecture
Project Structure
ClockifyCli/ âââ Commands/ # CLI command implementations â âââ BaseCommand.cs â âââ ConfigCommand.cs â âââ UploadToTempoCommand.cs â âââ AddTaskCommand.cs â âââ ArchiveCompletedJirasCommand.cs âââ Models/ # Data models for APIs â âââ Clockify/ # Clockify API models â âââ Jira/ # Jira API models â âââ Tempo/ # Tempo API models âââ Services/ # API clients and business logic â âââ ClockifyClient.cs â âââ JiraClient.cs â âââ TempoClient.cs â âââ ConfigurationService.cs âââ Program.cs # Application entry point
Dependencies
- .NET 8.0 - Runtime platform
- Spectre.Console - Rich terminal UI framework
- Spectre.Console.Cli - Command-line interface framework
- Newtonsoft.Json - JSON serialization
đ Security Features
- Encrypted Configuration: All API keys stored with AES-256 encryption
- Masked Display: Sensitive values are masked in output
- Secure Prompts: API keys hidden during input
- User-Scoped: Configuration encrypted per user account
- No Hardcoded Values: All credentials configurable
đ¨ User Experience
- Rich Terminal UI: Colors, tables, and progress indicators
- Interactive Prompts: Select projects, confirm actions
- Progress Feedback: Real-time status during operations
- Error Handling: Clear error messages and recovery guidance
- Validation: Input validation and helpful error messages
đ Workflow Integration
Typical Workflow
- Setup (one-time):clockify-cli config set
- Daily/Weekly Upload:clockify-cli upload-to-tempo --days 7
- Adding New Tasks:clockify-cli add-task
- Cleanup (periodic):clockify-cli archive-completed-jiras
CI/CD Integration
The CLI can be integrated into automation workflows:
Upload time entries in a scheduled job
clockify-cli upload-to-tempo --days 1
đ¤ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Development Setup
Clone and setup
git clone https://github.com/yourusername/ClockifyCli.git cd ClockifyCli
Restore dependencies
dotnet restore
Build
dotnet build
Run tests (if available)
dotnet test
Run locally
dotnet run --project src/ClockifyCli/ClockifyCli.csproj -- --help
đ License
This project is licensed under the MIT License - see the LICENSE file for details.
đ Troubleshooting
Common Issues
"Configuration is incomplete"
Run clockify-cli config set
to set up all required API credentials.
"No workspace found"
Ensure your Clockify API key is valid and you have access to at least one workspace.
Connection errors
- Check your internet connection
- Verify API keys are correct and not expired
- Ensure API endpoints are accessible
Permission errors
- Verify your Jira user has necessary permissions
- Check Tempo API key permissions
- Ensure Clockify workspace access
Debug Mode
For detailed error information, check the console output or enable verbose logging in your development environment.
đ Support
- đ Bug Reports: GitHub Issues
- đĄ Feature Requests: GitHub Discussions
- đ Documentation: Wiki
Made with â¤ī¸ using .NET 8 and Spectre.Console
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last Updated |
---|---|---|
1.11.64 | 48 | 9/8/2025 |
1.10.62 | 92 | 9/5/2025 |
1.9.61 | 97 | 9/5/2025 |
1.8.60 | 97 | 9/5/2025 |
1.8.59 | 138 | 9/4/2025 |
1.8.58 | 134 | 9/4/2025 |
1.7.57 | 131 | 9/4/2025 |
1.7.56 | 133 | 9/4/2025 |
1.7.54 | 130 | 9/4/2025 |
1.7.53 | 132 | 9/4/2025 |
1.7.52 | 137 | 9/4/2025 |
1.7.50 | 133 | 9/4/2025 |
1.7.49 | 130 | 9/4/2025 |
1.7.48 | 133 | 9/4/2025 |
1.7.47 | 133 | 9/4/2025 |
1.7.46 | 133 | 9/4/2025 |
1.6.43 | 136 | 9/4/2025 |
1.5.41 | 181 | 8/28/2025 |
1.4.40 | 194 | 8/26/2025 |
1.3.39 | 78 | 8/22/2025 |
1.2.38 | 128 | 8/19/2025 |
1.1.36 | 118 | 7/31/2025 |
1.1.33 | 114 | 7/31/2025 |
1.0.31 | 443 | 7/24/2025 |
1.0.30 | 511 | 7/23/2025 |
1.0.29 | 518 | 7/23/2025 |
1.0.27 | 515 | 7/23/2025 |
1.0.26 | 522 | 7/23/2025 |
1.0.25 | 520 | 7/23/2025 |
1.0.24 | 524 | 7/22/2025 |
1.0.23 | 523 | 7/22/2025 |
1.0.17 | 508 | 7/22/2025 |
1.0.16 | 475 | 7/21/2025 |
1.0.15 | 474 | 7/21/2025 |
1.0.14 | 403 | 7/21/2025 |
1.0.13 | 70 | 7/18/2025 |
1.0.12 | 66 | 7/18/2025 |
1.0.11 | 67 | 7/18/2025 |
1.0.10 | 71 | 7/18/2025 |
1.0.9 | 71 | 7/18/2025 |
1.0.7 | 79 | 7/18/2025 |
1.0.6 | 80 | 7/18/2025 |
1.0.5 | 92 | 7/18/2025 |
1.0.4 | 82 | 7/18/2025 |
1.0.3 | 77 | 7/18/2025 |