PHPackages                             tosksh/tosk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. tosksh/tosk

ActiveLibrary[CLI &amp; Console](/categories/cli)

tosksh/tosk
===========

Tosk is a command-line tool written in PHP and Symfony that empowers you to efficiently manage times from tasks for your projects.

0.1.1(1y ago)016PHPPHP &gt;=8.2

Since Dec 22Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ToskSh/tosk)[ Packagist](https://packagist.org/packages/tosksh/tosk)[ Docs](https://github.com/ToskSh/tosk)[ RSS](/packages/tosksh-tosk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (15)Versions (3)Used By (0)

Tosk
====

[](#tosk)

![Tosk GitHub Release](https://camo.githubusercontent.com/82660667fa7801d34d4d3171db827843061dca76d6eb29986daeb92d27bf2a4b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f546f736b53682f746f736b2e7376673f7374796c653d666c6174)![Tosk GitHub pull requests](https://camo.githubusercontent.com/b4567241ffa0b0ac11fb0488f2074536e558bbbcd9deecd1fd893efb2650f75f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f546f736b53682f746f736b2e7376673f7374796c653d666c6174)

Introduction
------------

[](#introduction)

Tosk is a command-line tool written in PHP and Symfony that empowers you to efficiently **manage todo-list for your projects**. It provides a comprehensive solution for maintaining a project-related activities through commit history.

### Features

[](#features)

- **Commit:** Easily associate time entries with project commits to maintain a history of actions taken during the task.
- **Remaining time:** Organize your time into tasks with time remaining.
- **Emojies supports:** ( 📝 `:pencil:`, 🎉 `:tada:`, 🍺 `:beer:` ect...) 5000+ emojies supported into commit message.
- **Markdown support:** Implementation of markdown synthax into commit message.
- **Custom tags supports:** (``, ``, `` ect...) Implemented into commit message.

Installation
------------

[](#installation)

### Bash installer

[](#bash-installer)

```
  # This script should be run via curl:
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/ToskSh/tosk/main/install.sh)"
  # or via wget:
  bash -c "$(wget -qO- https://raw.githubusercontent.com/ToskSh/tosk/main/install.sh)"
  # or via fetch:
  bash -c "$(fetch -o - https://raw.githubusercontent.com/ToskSh/tosk/main/install.sh)"

  # As an alternative, you can first download the install script and run it afterwards:
  wget https://raw.githubusercontent.com/ToskSh/tosk/main/install.sh
  bash install.sh
```

### Binary

[](#binary)

```
curl --output tosk https://raw.githubusercontent.com/ToskSh/tosk/main/tosk
chmod +x tosk
sudo mv tosk /usr/local/bin/tosk
tosk
```

### Docker

[](#docker)

#### Dockerfile

[](#dockerfile)

```
git clone https://github.com/ToskSh/tosk
cd tosk
docker build -t tosk .
docker run -it tosk
```

### Composer

[](#composer)

#### Basic

[](#basic)

```
composer require tosk/tosk
./vendor/tosk/tosk/bin/tosk
```

#### Global

[](#global)

```
composer global require tosk/tosk
tosk
```

Usage
-----

[](#usage)

Here are some examples of how to use Tosk:

- To check the time you spend on a project, you can create a task for each phase of the project.
- To check the time you spend on a recurring task, you can create a task with a start date and an end date.
- To check the time you spend on a task with a client or vendor, you can add this information to the task.

### Commands

[](#commands)

```
  tosk task:list                        Displaying the tasks list
  tosk task:start             Starting step of task
  tosk task:stop              Stoping step of task
  tosk task:status            Displaying status of task
  tosk task:archive            Archive the task by ID
  tosk task:delete             Deleting the task by ID

  tosk commit:create   Creating new commit into task
  tosk commit:edit           Editing the commit from task
  tosk commit:delete         Deleting the commit from task

  tosk git:gitignore                    Adding .tosk rule into .gitgnore
  tosk version:update         Update version of Tosk
```

### Task Workflow

[](#task-workflow)

#### Creating a task

[](#creating-a-task)

```
tosk task:start # Start a task without specifying a name.
tosk task:start 123 # Start a task with the specified ID (e.g., ID 123).
tosk task:start --name "Feature Implementation" # Start a task and set the name to "Feature Implementation".
tosk task:start --new # Start a completely new task without specifying a name.
tosk task:start --duration 2h # Start a task and sets the duration of the current step to 2 hours.
tosk task:start --remaining 4h # Start a task and sets the remaining time of the task to 4 hours.
tosk task:start 456 --new --name "New feature" --duration 30min # Start a completely new task with the ID 456 and sets the duration of the current step to 30 minutes.
```

#### Creating a commit

[](#creating-a-commit)

```
tosk commit:create # Create a new commit without specifying a message.
tosk commit:create "Initial commit" # Create a new commit for the current task with the specified message.
tosk commit:create -E # Open default editor for write a message and commit.
tosk commit:create "This is a very long commit message describing the changes made in this commit. It covers multiple lines and provides detailed information about the updates." # Create a new commit with a long and detailed commit message.
tosk commit:create "Your commit message" --duration 1h # Create a new commit with a message and sets its duration to 1 hour.
tosk commit:create "Test update older task with ID 123 or create it" --task-id 123 # Create a new commit for the task specified by the ID.
tosk commit:create "Rollback" --duration "-1hour" # Create a new commit with a message and sets its duration to rollback (negative duration).
```

#### Editing a commit

[](#editing-a-commit)

```
tosk commit:edit  --message "Updated message" --duration 30min # Edit the message and duration of a specific commit.
tosk commit:edit 456 -E # Open default editor for edit a message for commit ID 456.
tosk commit:edit 456 --duration 1h # Edit the commit with ID 456 and updates its duration to 1 hour.
tosk commit:edit 300 --task-id 123 --message "Update commit with ID 300 from task ID 123" # Edit the last commit from the task specified by the ID.
```

#### Deleting a commit

[](#deleting-a-commit)

```
tosk commit:delete  # Delete the commit with ID from the current task.
tosk commit:delete 456 # Delete the commit with ID 123 from the task specified by the ID 111 and save it into the configuration.
tosk commit:delete 300 --task-id 123 # Delete the commit with ID 300 from the task specified by the ID 123.
```

#### Displaying task status

[](#displaying-task-status)

```
tosk task:status # Display the status of the current task.
tosk task:status 123 # Display the status of the task with ID 123.
```

#### Stopping a task step

[](#stopping-a-task-step)

```
tosk task:stop # Stop the current step of the task with the default duration.
tosk task:stop  # Stop the task step with task ID.
tosk task:stop 123 --duration 1h # Stop the task step with ID 123 and updates its duration to 1 hour.
```

#### Archive or deleting a task

[](#archive-or-deleting-a-task)

```
tosk task:archive  # Archive the task with ID without stopping the current step.
tosk task:archive 123 # Archive the task with ID 123.

# or delete the task

tosk task:delete  # Delete the task with ID.
tosk task:delete 123 # Delete the task with ID 123.
```

Archive or delete the current task.

#### Displaying task list

[](#displaying-task-list)

```
tosk task:list # Display the list of tasks.
```

### Additional Commands

[](#additional-commands)

Adding Tosk rule to .gitignore

```
tosk git:gitignore # Add the .tosk rule to your project .gitignore file.
```

### Update Tosk to the latest version

[](#update-tosk-to-the-latest-version)

```
tosk version:update # Update Tosk to the latest version.
```

### Configuration Options

[](#configuration-options)

Tosk provides several configuration options, edit the configuration file with the given parameters, that you can customize:

- `--config-path`: Specify the path to the JSON configuration file.
- `--config-datetime-format`: Set the DateTimeFormat for date format displayed.
- `--config-datetime-zone`: Set the DateTimeZone for UTC used.
- `--config-task-dir`: Set the directory path containing task files.
- `--config-editor`: Set the default editor command to use to write commits messages.

```
tosk task:start --config-path=/path/to/config/file --config-datetime-format="d/m/Y H:i:s" --config-datetime-zone="Europe/London" --config-task-dir=/path/to/tasks/directory --config-editor vim
```

Feel free to explore and make the most of Tosk to streamline your project management workflow!

Contributing
------------

[](#contributing)

Tosk is an open-source project. You can contribute to the project by submitting bug fixes, improvements, or new features.

To contribute to the project, you can follow these instructions:

- Clone the tosk GitHub repository
- Create a branch for your contribution
- Make your changes
- Test your changes with `bin/phpunit`
- Build your bin with `box compile`
- Submit a pull request

### Build a bin with Box

[](#build-a-bin-with-box)

#### Box install

[](#box-install)

[Box2](https://github.com/box-project/box) used for binary generation from php project. **PHP &gt;=8.1 is required.**

```
composer global require humbug/box
box
```

#### Box usage

[](#box-usage)

```
composer install --no-scripts --no-autoloader
composer dump-autoload --optimize
box compile
```

Conclusion
----------

[](#conclusion)

Tosk is a simple and effective tool that can help you better manage your time. If you are looking for a free and open-source time tracker, Tosk is a good option.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance41

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Total

2

Last Release

496d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/79007b2e19edf93beb66f5e7a053792355273f226985916c635c2f65ae9856ea?d=identicon)[ToskSh](/maintainers/ToskSh)

---

Top Contributors

[![ToskSh](https://avatars.githubusercontent.com/u/192507007?v=4)](https://github.com/ToskSh "ToskSh (13 commits)")

---

Tags

command-linetimetimerworkflowlisttaskprojectstime trackingproductivitydeveloper-toolsversion controltodotask managementTime Managementcommit historytodo-listmarathontosk

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/tosksh-tosk/health.svg)

```
[![Health](https://phpackages.com/badges/tosksh-tosk/health.svg)](https://phpackages.com/packages/tosksh-tosk)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)[easycorp/easyadmin-demo

EasyAdmin Demo Application

145.7k](/packages/easycorp-easyadmin-demo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
