{"id":13551071,"url":"https://github.com/jansorg/tom","last_synced_at":"2026-01-12T06:44:21.964Z","repository":{"id":46750271,"uuid":"163313665","full_name":"jansorg/tom","owner":"jansorg","description":"Command line tool to track time and to simplify related office work (reporting, invoicing) ","archived":false,"fork":false,"pushed_at":"2022-08-08T08:30:52.000Z","size":777,"stargazers_count":18,"open_issues_count":25,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-06T02:04:26.357Z","etag":null,"topics":["command-line","fanurio","go","golang","gotime","sevdesk","time-tracker","time-tracking"],"latest_commit_sha":null,"homepage":"https://www.tomtime.dev/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jansorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-27T16:09:37.000Z","updated_at":"2023-05-27T17:15:11.000Z","dependencies_parsed_at":"2022-08-28T11:23:19.811Z","dependency_job_id":null,"html_url":"https://github.com/jansorg/tom","commit_stats":null,"previous_names":["jansorg/gotime"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jansorg%2Ftom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jansorg%2Ftom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jansorg%2Ftom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jansorg%2Ftom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jansorg","download_url":"https://codeload.github.com/jansorg/tom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252606965,"owners_count":21775415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","fanurio","go","golang","gotime","sevdesk","time-tracker","time-tracking"],"created_at":"2024-08-01T12:01:41.941Z","updated_at":"2026-01-12T06:44:21.958Z","avatar_url":"https://github.com/jansorg.png","language":"Go","readme":"\n[![GoDoc](https://godoc.org/github.com/jansorg/tom?status.svg)](https://godoc.org/github.com/jansorg/tom)\n[![Linux and macOS Build Status](https://api.travis-ci.org/jansorg/tom.svg?branch=master\u0026label=Windows+and+Linux+and+macOS+build \"Windows, Linux and macOS Build Status\")](https://travis-ci.org/jansorg/tom)\n[![Go Report Card](https://goreportcard.com/badge/github.com/jansorg/tom)](https://goreportcard.com/report/github.com/jansorg/tom)\n\n**This project is still in an early phase. It's usable and working but not yet recommended for production.**\n\n**A simple UI is developed at https://github.com/jansorg/tom-ui (Qt5 tested on Linux and macOS). A preview for mac is available there.**\n\n# tom\n\ntom is a command line application to track time and to simplify office work.\nIt's able to track time and to create HTML and PDF reports.\n\n`tom` tracks time locally. \nInstead of implementing billing, etc. it will rely on 3rd-party tools, i.e. mostly cloud-based services.\n\n## Get tom\nInstructions to get started until better documentation is available:\n\n```bash\ngo install github.com/jansorg/tom@latest\n```\n\nAfter that `tom` will be available, assuming that your `$GODIR/bin` is in the `$PATH`. \n\nIf you want to build in place, then run this:\n```bash\ngit clone https://github.com/jansorg/tom.git\ncd tom\ngo build .\n```\nThe binary `tom` will be in the current directory.\n\n## Basic usage\nA typical session looks like this:\n\n```bash\ntom create project acme\ntom start acme\nsleep 10\ntom stop\ntom report --month 0\n```\n\n## Documentation\nDocumentation about the command line is available at [docs/markdown](./docs/markdown/tom.md)\n\n## Data model\nThe data is stored in a few JSON files on disk. It's easy to backup and still fast.\nRight now it's on disk at `$HOME/.tom/`.\nThe available commands make it easy to export it into different target formats. Most commands are supporting plain text\nand JSON at this time. Other formats may be added in the future.\n\n### Projects\ntom supports nested projects. The separator character is the slash '/'.\nThe simplest form is a project without any subprojects.\n\nIf you need to bill a single client for several distinct project then it's better to use subprojects.\nFor example:\n```bash\ntom create project client1 client1/web client1/backend\ntom start client1/web\ntom stop\ntom report --split project -p client1\n```\n\nThis will create a report on all projects which belong to client1 with the tracked time per project.\n\n## Tracking time\n### Start\n### Stop\n### Cancel\n### View\n\n## Reporting\n\n### Date and time filters\n### Splitting options\n\nThe reporting allows to split the tracked time into multiple pieces. Multiple levels of splitting is possible.\nPossible values:\n- year\n- month\n- project\n\nFor example, `-split year` creates a report where the tracked time is grouped into the years which are covered by tracked time.\n`-split year,project` will renders groups of years which are further grouped by the projects which were tracked in this particular year. \n`-split project,month` groups the tracked time by project first and then lists the summaries grouped by month for each project. \n\n### Plain Text Reports\n\n### HTML Reports\n\n### PDF Reports\n#### api2pdf service integration\n\n## Import from other tools\n\n### Import data from Watson\n```bash\ntom import watson\n```\n\n### Import data from Fanurio\nThis needs a custom CSV export (to be documented).\n```bash\ntom import fanurio complete-export.csv\n```\n\n### Import data from Mac Time Tracker\nThis imports the CSV format exported by Mac Time Tracker.\n```bash\ntom import macTimeTracker export.csv\n```\n\n\n## License\nTo be decided\n","funding_links":[],"categories":["Go","golang"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjansorg%2Ftom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjansorg%2Ftom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjansorg%2Ftom/lists"}