ClockifyCli 1.0.9

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global ClockifyCli --version 1.0.9
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ClockifyCli --version 1.0.9
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ClockifyCli&version=1.0.9
                    
nuke :add-package ClockifyCli --version 1.0.9
                    

🕒 Clockify CLI

AppVeyor branch NuGet Downloads License .NET 8

A powerful cross-platform command-line tool for seamless time tracking integration between Clockify, Jira, and Tempo. Built with .NET 8 and featuring a beautiful, interactive terminal experience powered by Spectre.Console.

✨ Key Features

🔄 Smart Time Sync - Upload time entries from Clockify to Tempo with intelligent deduplication
📝 Jira Integration - Create Clockify tasks directly from Jira issues
📊 Auto Archiving - Archive completed tasks based on Jira status
⏱️ Real-time Status - View current timer with live duration updates
▶️ Interactive Timer - Start/stop timers with guided task selection
📅 Weekly Reports - Comprehensive time tracking with totals and averages
🔐 Secure Storage - AES-256 encrypted API key management
🎨 Rich UI - Beautiful terminal interface with colors and progress indicators
🛡️ Safe Operations - Confirmation prompts and validation for all destructive actions
🚀 Cross-platform - Works on Windows, macOS, and Linux

🚀 Quick Start

Installation

Option 1: .NET Global Tool (Recommended)dotnet tool install --global ClockifyCli
Option 2: From Sourcegit clone https://github.com/BlythMeister/ClockifyCli.git

cd ClockifyCli dotnet build -c Release dotnet tool install --global --add-source ./src/ClockifyCli/nupkg ClockifyCli

First Run Setup

  1. Configure your API credentials (required first step):clockify-cli config set
  2. Verify your configuration:clockify-cli config view
  3. Start tracking time:clockify-cli start

Prerequisites

  • .NET 8.0 Runtime or later
  • Access to:
    • Clockify workspace (free account works)
    • Jira instance with API access
    • Tempo (for time logging integration)

📋 Complete Command Reference

⚙️ Configuration Management

config set

Interactive setup wizard for API credentials.clockify-cli config setFeatures:

  • Secure prompts for API keys (masked input)
  • Validation and testing of credentials
  • Incremental updates (modify only specific keys)
  • Helpful setup guidance and links
config view

Display current configuration with masked sensitive values.clockify-cli config viewShows:

  • Configuration completeness status
  • Masked API keys for security
  • Configuration file location
  • Missing credential warnings

⏱️ Time Management

start

Start a new time entry with interactive task selection.clockify-cli startFeatures:

  • Browse all available tasks across projects
  • Project-only time tracking option
  • Optional description entry
  • Running timer detection and prevention
  • Confirmation before starting
  • Sorted project and task display
stop

Stop the currently running time entry.clockify-cli stopFeatures:

  • Shows current timer details before stopping
  • Elapsed time calculation
  • Confirmation prompt
  • Final duration display
  • Graceful handling when no timer is running
status

View detailed information about the current running timer.clockify-cli statusDisplays:

  • Project and task information
  • Description and start time
  • Real-time elapsed duration
  • Beautiful panel-based layout
  • Helpful guidance when no timer is running
timer-monitor

Monitor timer status and show Windows notifications (ideal for scheduled tasks).

Basic monitoring with notification

clockify-cli timer-monitor

Silent mode (no console output) - perfect for scheduled tasks

clockify-cli timer-monitor --silent

Always show notifications (even when timer is running)

clockify-cli timer-monitor --always-notify

Silent mode with status notifications

clockify-cli timer-monitor --silent --always-notify Options:

  • -s, --silent - Suppress console output (useful for scheduled tasks)
  • --always-notify - Show notification even when timer is running

Features:

  • Windows balloon notifications when no timer is running
  • Optional status notifications for running timers
  • Silent mode perfect for automated scheduled tasks
  • Cross-platform compatible (notifications only on Windows)
  • Exit codes for automation (0=timer running, 2=no timer, 1=error)

Scheduled Task Setup: Create a Windows scheduled task to run every hour:Program: clockify-cli.exe Arguments: timer-monitor --silent

week-view

Comprehensive weekly time tracking overview.# View completed entries only clockify-cli week-view

Include currently running timer with live duration

clockify-cli week-view --include-currentFeatures:

  • Current week view (Monday-Sunday)
  • Daily breakdowns with project, task, and description
  • Running vs completed entry status indicators
  • Real-time duration for active timers
  • Daily totals and week total
  • Average hours per working day
  • Optional inclusion of in-progress work

🔄 Integration & Automation

upload-to-tempo

Intelligent time entry synchronization with Tempo.# Upload last 14 days (default) clockify-cli upload-to-tempo

Upload specific timeframe

clockify-cli upload-to-tempo --days 7

Advanced: cleanup orphaned entries

clockify-cli upload-to-tempo --days 30 --cleanup-orphanedOptions:

  • -d, --days <number> - Number of days to upload (default: 14)
  • --cleanup-orphaned - Remove entries without Clockify IDs (use with caution)

Safety Features:

  • Smart deduplication prevents duplicate entries
  • Running timer detection with warning
  • Progress tracking and detailed error reporting
  • Rollback capabilities for failed operations
  • Confirmation prompts for destructive actions

📊 Task Management

add-task

Create Clockify tasks from Jira issues seamlessly.clockify-cli add-taskWorkflow:

  1. Select target Clockify project
  2. Enter Jira issue reference or URL
  3. Automatic Jira issue lookup and validation
  4. Task creation with format: {IssueKey} [{Summary}]
  5. Confirmation and success feedback
archive-completed-jiras

Automatically archive tasks based on Jira completion status.clockify-cli archive-completed-jirasProcess:

  1. Scan all Clockify projects and tasks
  2. Cross-reference with Jira issue status
  3. Identify tasks with "Done" Jira status
  4. Display archivable tasks in organized table
  5. Batch archive with progress tracking
  6. Detailed success/failure reporting

Features:

  • Interactive confirmation before archiving
  • Real-time progress tracking
  • Individual task status reporting
  • Safe operation with detailed error handling

📚 Help & Documentation

Get comprehensive help for any command:clockify-cli --help # General help clockify-cli [command] --help # Command-specific help clockify-cli config --help # Configuration help clockify-cli week-view --help # Week view options

🔧 Configuration & Setup

🔐 API Keys Required

Clockify API Key
  1. Navigate to Clockify Profile Settings → API
  2. Copy your personal API key
  3. Provides access to workspaces, projects, tasks, and time entries
Jira API Token
  1. Visit Atlassian Account Security
  2. Create a new API token
  3. Use your Jira email address as the username
  4. Enables Jira issue lookup and status checking
Tempo API Key
  1. Go to Tempo → Settings → API Integration
  2. Generate a new API token
  3. Required for time entry synchronization

🔒 Secure Storage

All credentials are encrypted using AES-256 encryption and stored locally:

  • Windows: %APPDATA%\ClockifyCli\clockify-config.dat
  • macOS: ~/.config/ClockifyCli/clockify-config.dat
  • Linux: ~/.config/ClockifyCli/clockify-config.dat

Security Features:

  • User-scoped encryption with unique keys
  • No credentials stored in plain text
  • Secure prompts with masked input
  • Local storage only (no cloud sync)

🏗️ Architecture & Technical Details

🛠️ Built With

  • .NET 8.0 - Modern cross-platform runtime
  • Spectre.Console - Rich terminal UI framework
  • Spectre.Console.Cli - Command-line interface framework
  • Newtonsoft.Json - Robust JSON serialization
  • System.Security.Cryptography - AES-256 encryption

🎯 Usage Scenarios & Workflows

📈 Daily Workflow# Morning: Check yesterday's work

clockify-cli week-view

Start new task

clockify-cli start

Check current status (anytime)

clockify-cli status --include-current

Monitor timer status (can be automated)

clockify-cli timer-monitor

End of day: Stop timer and upload

clockify-cli stop clockify-cli upload-to-tempo --days 1

🗂️ Project Management# Add new tasks from Jira

clockify-cli add-task

Weekly cleanup

clockify-cli archive-completed-jiras

Weekly report

clockify-cli week-view --include-current

🤖 CI/CD Integration# Automated daily sync (cron job)

clockify-cli upload-to-tempo --days 1

Weekly cleanup automation

clockify-cli archive-completed-jiras

Hourly timer reminder (Windows scheduled task)

clockify-cli timer-monitor --silent

🛠️ Development & Contributing

🔧 Development Setup

Clone and setup

git clone https://github.com/BlythMeister/ClockifyCli.git cd ClockifyCli

Restore dependencies

dotnet restore

Build

dotnet build

Run locally

dotnet run --project src/ClockifyCli/ClockifyCli.csproj -- --help

Install as global tool for testing

dotnet pack -c Release dotnet tool install --global --add-source ./src/ClockifyCli/nupkg ClockifyCli

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes with tests
  4. Commit your changes: git commit -m 'Add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

📋 Contribution Guidelines

  • Follow existing code style and patterns
  • Add tests for new functionality
  • Update documentation as needed
  • Ensure cross-platform compatibility
  • Test on multiple operating systems

🐛 Troubleshooting

Common Issues

Configuration Problems
Issue Solution
"Configuration is incomplete" Run clockify-cli config set to configure missing API keys
"No workspace found" Verify Clockify API key and workspace access
"Invalid credentials" Check API key validity and permissions
Connection Issues
Issue Solution
Network timeouts Check internet connection and firewall settings
API rate limits Wait and retry, or reduce frequency of operations
SSL/TLS errors Update .NET runtime or check system certificates
Permission Issues
Issue Solution
Jira access denied Verify user permissions and API token scope
Tempo sync failures Check Tempo API key permissions
Clockify write errors Ensure workspace admin or project permissions

📊 Debug Mode

For detailed troubleshooting:# Enable verbose logging (if implemented) clockify-cli --verbose [command]

Check configuration status

clockify-cli config view

This project is licensed under the MIT License - see the LICENSE file for details.

Third-Party Acknowledgments

📞 Support & Community

🌟 Show Your Support

If this tool helps your workflow, please consider:

  • ⭐ Starring the repository
  • 🐛 Reporting issues and bugs
  • 💡 Suggesting new features
  • 🤝 Contributing code improvements
  • 📢 Sharing with your team

Made with ❤️ by Chris Blyth using Copilot, .NET 8 and Spectre.Console

Streamline your time tracking workflow today! 🚀

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.11.64 126 9/8/2025
1.10.62 93 9/5/2025
1.9.61 98 9/5/2025
1.8.60 100 9/5/2025
1.8.59 139 9/4/2025
1.8.58 135 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 133 9/4/2025
1.7.52 138 9/4/2025
1.7.50 134 9/4/2025
1.7.49 131 9/4/2025
1.7.48 134 9/4/2025
1.7.47 136 9/4/2025
1.7.46 136 9/4/2025
1.6.43 137 9/4/2025
1.5.41 183 8/28/2025
1.4.40 194 8/26/2025
1.3.39 79 8/22/2025
1.2.38 129 8/19/2025
1.1.36 118 7/31/2025
1.1.33 114 7/31/2025
1.0.31 453 7/24/2025
1.0.30 525 7/23/2025
1.0.29 531 7/23/2025
1.0.27 529 7/23/2025
1.0.26 534 7/23/2025
1.0.25 532 7/23/2025
1.0.24 533 7/22/2025
1.0.23 533 7/22/2025
1.0.17 517 7/22/2025
1.0.16 484 7/21/2025
1.0.15 483 7/21/2025
1.0.14 415 7/21/2025
1.0.13 79 7/18/2025
1.0.12 75 7/18/2025
1.0.11 76 7/18/2025
1.0.10 80 7/18/2025
1.0.9 80 7/18/2025
1.0.7 88 7/18/2025
1.0.6 89 7/18/2025
1.0.5 101 7/18/2025
1.0.4 91 7/18/2025
1.0.3 86 7/18/2025