{"id":45896968,"url":"https://github.com/tagirov/rusk","last_synced_at":"2026-04-02T12:07:32.476Z","repository":{"id":310520283,"uuid":"1029337191","full_name":"tagirov/rusk","owner":"tagirov","description":"A minimal cross-platform terminal task manager","archived":false,"fork":false,"pushed_at":"2026-03-30T18:22:29.000Z","size":754,"stargazers_count":18,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T19:13:29.310Z","etag":null,"topics":["cross-platform","minimal","minimalist","minimalistic","rusk","rust","task-manager","todo-manager"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tagirov.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":null,"dco":null,"cla":null}},"created_at":"2025-07-30T22:25:56.000Z","updated_at":"2026-03-30T18:22:32.000Z","dependencies_parsed_at":"2025-09-04T20:24:16.412Z","dependency_job_id":"66022694-416b-4f30-8a3a-5bee8e0af329","html_url":"https://github.com/tagirov/rusk","commit_stats":null,"previous_names":["tagirov/rusk"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/tagirov/rusk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagirov%2Frusk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagirov%2Frusk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagirov%2Frusk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagirov%2Frusk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tagirov","download_url":"https://codeload.github.com/tagirov/rusk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tagirov%2Frusk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"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":["cross-platform","minimal","minimalist","minimalistic","rusk","rust","task-manager","todo-manager"],"created_at":"2026-02-27T21:02:06.109Z","updated_at":"2026-04-02T12:07:32.468Z","avatar_url":"https://github.com/tagirov.png","language":"Rust","funding_links":[],"categories":["\u003ca name=\"todo-manager\"\u003e\u003c/a\u003eTodo managers"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" id=\"rusk\"\u003erusk\u003c/h1\u003e\n\u003cp align=\"center\"\u003eA minimal cross-platform terminal task manager\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tagirov/rusk/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/tagirov/rusk/.github/workflows/rust.yml?logo=github-actions\" alt=\"build\"\u003e\u003c/a\u003e\u0026nbsp;\n  \u003ca href=\"https://github.com/tagirov/rusk/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/tagirov/rusk?logo=github\" alt=\"release\"\u003e\u003c/a\u003e\u0026nbsp;\n  \u003ca href=\"https://aur.archlinux.org/packages/rusk\"\u003e\u003cimg src=\"https://img.shields.io/aur/version/rusk?logo=archlinux\" alt=\"AUR Version\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\n- [Install](#install)\n- [Usage](#usage)\n  - [Working with Multiple Tasks](#working-with-multiple-tasks)\n  - [Interactive Editing](#interactive-editing)\n  - [Data Safety \u0026 Backup](#data-safety--backup)\n    - [Automatic Backups](#automatic-backups)\n    - [Manual Restore](#manual-restore)\n  - [Aliases](#aliases)\n- [Configuration](#configuration)\n  - [Shell Completion](#shell-completion)\n    - [Quick Install (Recommended)](completions/README.md#quick-install-recommended)\n    - [Manual Installation](completions/README.md#manual-installation)\n      - [Bash](completions/README.md#bash)\n      - [Zsh](completions/README.md#zsh)\n      - [Fish](completions/README.md#fish)\n      - [Nu Shell](completions/README.md#nu-shell)\n      - [PowerShell](completions/README.md#powershell)\n  - [Database Location](#database-location)\n\n# Install\n#### Linux/MacOS/Windows\n```bash\ncargo install --git https://github.com/tagirov/rusk\n```\nThe binary will be installed to:\n- Linux/MacOS: `$HOME/.cargo/bin/rusk`\n- Windows: `%USERPROFILE%\\.cargo\\bin\\rusk.exe`\n\nMake sure that these paths are added to your $PATH environment variable to use `rusk` command globally.\n\n#### Arch Linux (AUR)\n```bash\nyay -S rusk\n```\n\n#### Manually\n```bash\ngit clone https://github.com/tagirov/rusk \u0026\u0026 cd rusk\n```\n```bash\ncargo build --release\n```\n\nLinux/MacOS\n\n```bash\nsudo install -m 755 ./target/release/rusk /usr/local/bin\n```\n\nWindows\n\n```bash\ncopy .\\target\\release\\rusk.exe \"%USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsApps\\\"\n```\n\n\n\n# Usage\n\n```bash\n# Add a new task\nrusk add Buy groceries\n\n# Add a task with a deadline\nrusk add Finish project report --date 31-12-2025\n\n# Or with short year and slash separator:\nrusk add Finish project report --date 31/12/25\n\n# Leading zero for day and month is optional:\nrusk add Finish project report --date 1-3-25\n\n# Relative deadline from today (local date): chain number + suffix with no spaces.\n# d=days, w=weeks, m=months, q=quarters (3 months), y=years\nrusk add Follow up --date 2w\nrusk add Review --date 10d5w\n\n# View all tasks\nrusk list\n\n# or simply\nrusk\n\n# Mark a task as done\nrusk mark 1\n\n# Mark a task as undone (toggle)\nrusk mark 1\n\n# Edit task text (replace)\nrusk edit 1 Complete the project documentation\n\n# Edit task date\nrusk edit 1 --date 25/12/2025\nrusk edit 1 --date 1m3q\n\n# Edit both text and date\nrusk edit 1 Update documentation --date 23-12-25\n\n# Delete a task\nrusk del 1\n\n# Delete all completed tasks\nrusk del --done\n\n# Get help\nrusk --help\n\n# Help for a specific command\nrusk add --help\nrusk del --done --help\n```\n\n## Working with Multiple Tasks\n\nMultiple task IDs must be comma-separated (no spaces allowed between IDs)\n\n```bash\n# Mark multiple tasks as done\nrusk mark 1,2,3\n\n# Edit multiple tasks with the same text\nrusk edit 1,2,3 Update status to completed\n\n# Delete multiple tasks\nrusk del 1,2,3\n```\n\n## Interactive Editing\n\n```bash\n# Edit task text interactively\nrusk edit 1\n\n# Edit task text and date interactively (prompt accepts DD-MM-YYYY and relative offsets)\nrusk edit 1 --date\n\n# Interactive editing of tasks in sequence\nrusk edit 1,2,3\n```\n\n\n## Data Safety \u0026 Backup\n#### Automatic Backups\n- Every save operation creates a `.json.backup` file\n- Backups are stored in the same directory as your database\n- Atomic writes prevent data corruption during saves\n\n#### Manual Restore\n```bash\n# Restore from the automatic backup\nrusk restore\n\n# This will:\n# 1. Validate the backup file\n# 2. Create a safety backup of current database (if valid)\n# 3. Restore tasks from backup\n```\n\n\n## Aliases\n```bash\nrusk a (add)\nrusk l (list)\nrusk m (mark)\nrusk e (edit)\nrusk d (del)\nrusk r (restore)\nrusk c (completions)\n\n-d (--date)\n-h (--help)\n-V (--version)\n```\n\n# Configuration\n\n### Shell Completion\n\n\u003e For installation instructions, see [completions/README.md](completions/README.md).\n\nIt provides autocomplete for commands and task text during editing by pressing `\u003ctab\u003e` button.\n\n\n**Features**\n- Command completion: `add`, `edit`, `mark`, `del`, `completions`, etc. and their aliases\n- Task text completion: `rusk edit \u003cid\u003e\u003ctab\u003e` appends the task text for that ID. If the text contains shell-special characters  (``| ; \u0026 \u003e \u003c ( ) [ ] { } $ \" ' \\` * ? ~ # @ ! % ^ = + - / : ,``), it is automatically wrapped in single quotes (double quotes if the text has `'`)\n- Flag completion: Autocomplete `--date`, `--done`, etc.\n\n**Windows Support**\n- Git Bash: Works with `bash` completions (uses Unix-style paths)\n- WSL: Works with `bash`, `zsh`, `fish`, and `nu` completions\n- Nu Shell: Works natively on Windows (uses `%APPDATA%\\nushell\\completions\\`)\n- PowerShell: Works natively on Windows (uses `Documents\\PowerShell\\rusk-completions.ps1`)\n- CMD: Basic commands work (add, list, mark, del, edit with text/date). Interactive editing (`rusk edit` without arguments) requires Windows 10+ and may have limited functionality. Tab completion is not supported. Colors work on Windows 10+ (build 1511 and later)\n\n### Database Location\n\nBy default, Rusk stores tasks to: `./.rusk/tasks.json`\n\n```bash\n# Use different task lists for different projects\ncd ~/projects/website\nrusk add Fix responsive layout\n\ncd ~/projects/api\nrusk add Add authentication endpoint\n\n# Each project has its own task list because Rusk uses a relative default database path\n```\nYou can customize the database location using the `RUSK_DB` environment variable:\n\n```bash\n# Use a custom database file\nexport RUSK_DB=\"/path/to/your/db.json\"\n\n# Use a custom directory (tasks.json will be created inside)\nexport RUSK_DB=\"/path/to/your/project/\"\n```\n\n**Debug Mode**\n\nWhen running in debug mode (`cargo run` or debug builds), Rusk uses a temporary database location to avoid affecting your production data:\n- Linux/MacOS: `$TMPDIR/rusk_debug/tasks.json` (usually `/tmp/rusk_debug/tasks.json`)\n- Windows: `%TEMP%\\rusk_debug\\tasks.json` (usually `C:\\Users\\\u003cuser\u003e\\AppData\\Local\\Temp\\rusk_debug\\tasks.json`)\n\nIn debug mode, the `RUSK_DB` environment variable is ignored, and the database path is printed to the console when the program starts.\n\n\u003cbr /\u003e\n\n\n\u003cp align=\"center\"\u003e\u003ca href=\"#rusk\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftagirov%2Frusk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftagirov%2Frusk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftagirov%2Frusk/lists"}