{"id":37220195,"url":"https://github.com/nexneo/samay","last_synced_at":"2026-01-15T01:21:59.211Z","repository":{"id":7918592,"uuid":"9304061","full_name":"nexneo/samay","owner":"nexneo","description":"Command line Time tracking and reporting. Built for software developers using Go.","archived":false,"fork":false,"pushed_at":"2025-10-19T09:48:54.000Z","size":315,"stargazers_count":37,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-30T19:56:45.955Z","etag":null,"topics":["command-line-tool","dropbox","golang","protobuf","protocol-buffers","time-tracker"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nexneo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2013-04-08T18:47:37.000Z","updated_at":"2025-10-19T09:47:53.000Z","dependencies_parsed_at":"2025-10-04T07:15:39.002Z","dependency_job_id":"fe49548b-34ef-45e1-a74e-f04b2154463c","html_url":"https://github.com/nexneo/samay","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/nexneo/samay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexneo%2Fsamay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexneo%2Fsamay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexneo%2Fsamay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexneo%2Fsamay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nexneo","download_url":"https://codeload.github.com/nexneo/samay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexneo%2Fsamay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28441031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"ssl_error","status_checked_at":"2026-01-15T00:55:20.945Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-tool","dropbox","golang","protobuf","protocol-buffers","time-tracker"],"created_at":"2026-01-15T01:21:58.599Z","updated_at":"2026-01-15T01:21:59.197Z","avatar_url":"https://github.com/nexneo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Samay\n\nTerminal-first time tracking and reporting.\n\nSamay is a Go application that lets you track work entirely from the terminal. It stores data in a local SQLite database, offers a Bubble Tea interface for daily use, and keeps the old command-line workflows around as future enhancements.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Weekly overview\" src=\"https://github.com/user-attachments/assets/48605f74-69d6-4eee-a65f-b1b29253ee45\" /\u003e\n\u003c/p\u003e\n\n## Why?\n\n- Frustration with existing time trackers, slow, complex.\n- The terminal is always open.\n- A playground for learning Go, [sqlc](https://sqlc.dev/), and Bubble Tea.\n\n## Highlights\n\n- TUI for starting and stopping timers, adding manual entries, and reviewing history.\n- Data stored in a single SQLite database (defaults to `~/Documents/Samay.db`, configurable on first launch).\n- Built-in monthly report and weekly overview views.\n\n## Prerequisites\n\n- Go 1.23+ (the repo is configured with the Go 1.24.2 toolchain).\n- SQLite is bundled; Samay uses the pure Go `modernc.org/sqlite` driver, so no external system packages are required.\n\n## Installation\n\nInstall Samay with the Go toolchain so you always pull the latest tagged release. On macOS the shortest path is to use Homebrew for Go itself, then install Samay in one step:\n\n```sh\nbrew install go\ngo install github.com/nexneo/samay@latest\n```\n\nThe binary ends up at `$(go env GOPATH)/bin/samay` (typically `~/go/bin/samay`); add that directory to your `PATH` if it is not already there.\n\n## Version\n\nCheck the installed version with:\n\n```sh\nsamay --version\n```\n\nWhen cutting a release, update the constant in `util/version/version.go` and create a matching Git tag (for example `v1.0.0`) so `go install github.com/nexneo/samay@latest` resolves to the correct binary.\n\n## Running Samay\n\nLaunch the interface with:\n\n```sh\n./samay\n```\n\nOn the first launch Samay asks where to create the SQLite database (press Enter to accept the default `~/Documents/Samay.db`). Subsequent runs reuse the saved location.\n\nUse `./samay -database /path/to/custom.db` to point at a different database for a single run—handy for testing or migrating data. When you quit, Samay prints the path to the database that backed the session so you always know where entries were written.\n\nThe TUI opens to a project list backed by that database. Use the arrow keys (or `j`/`k`) to highlight a project and from there:\n\n- `s` starts a timer. The project is persisted as soon as you start tracking against it.\n- `p` stops the active timer and prompts for a summary message.\n- `e` records a manual entry—enter a duration such as `45m` or `1h30m`, then the description.\n- `l` shows the project log with scrollable history (`↑/↓/PgUp/PgDn`), and `a` toggles between recent entries and the full timeline.\n- `v` lists entries so you can review details, move them to another project, or delete them.\n- `r` renames the project; `d` deletes it.\n\nAt the project list level, press `r` to open the monthly report for the highlighted month and `o` for the weekly overview dashboard. `Esc` navigates back; `q` quits from anywhere.\n\n## Data Storage\n\nSamay persists everything in a single SQLite database. The default location is `~/Documents/Samay.db`, but you can point it anywhere on disk. The schema tracks:\n\n- `projects`: project metadata plus timestamps and a hidden flag.\n- `entries`: individual time entries with nanosecond precision duration, start/stop timestamps, billable flag, and optional creator.\n- `entry_tags`: many-to-many join table for hashtag extraction.\n- `timers`: one active timer per project.\n\nThe schema lives in `data/sql/schema.sql` and the sqlc query definitions are in `data/sql/queries.sql`.\n\n## Development \u0026 Testing\n\nRun the full test suite with:\n\n```sh\ngo test ./...\n```\n\nIf you change `data/sql/schema.sql` or `data/sql/queries.sql`, regenerate the typed data access layer with:\n\n```sh\nsqlc generate\n```\n\nDependencies are managed through Go modules; see `go.mod` for the current set.\n\n## Troubleshooting\n\n- The database location is stored in `$(os.UserConfigDir())/samay/config.json`. Delete that file to re-run the first-time setup prompt.\n- Because the SQLite driver is pure Go, the binary runs anywhere Go runs—no CGO or native SQLite is required.\n- Samay is provided without warranty—use at your own risk.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexneo%2Fsamay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnexneo%2Fsamay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexneo%2Fsamay/lists"}