dura
brew install dura
v0.2.0
Apache-2.0
Backs up your work automatically via Git commits
15
30-day installs · #7547
34
90-day · #8312
186
365-day · #7544
4.4k
★ GitHub stars · updated 4mo ago
Runtime dependencies
Build dependencies
GitHub topics
git
rust
Links
- https://github.com/tkellogg/dura
- GitHub: tkellogg/dura
- Brew formula source: Formula/d/dura.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"pkgconf",
"rust"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [
"openssl@3"
],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Backs up your work automatically via Git commits",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:37:11+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "dura",
"github_default_branch": "master",
"github_last_commit_at": "2026-03-27T04:01:21Z",
"github_readme_excerpt": "# Dura\n\n[![Build][build badge]][build action]\n\nDura is a background process that watches your Git repositories and commits your uncommitted changes without impacting\nHEAD, the current branch, or the Git index (staged files). If you ever get into an \"oh snap!\" situation where you think\nyou just lost days of work, checkout a `dura` branch and recover.\n\nWithout `dura`, you use Ctrl-Z in your editor to get back to a good state. That\u0027s so 2021. Computers crash and Ctrl-Z\nonly works on files independently. Dura snapshots changes across the entire repository as-you-go, so you can revert to\n\"4 hours ago\" instead of \"hit Ctrl-Z like 40 times or whatever\". Finally, some sanity.\n\n## How to use\n\nRun it in the background:\n\n```bash\n$ dura serve \u0026\n```\n\nThe `serve` can happen in any directory. The `\u0026` is Unix shell syntax to run the process in the background, meaning that you can start\n`dura` and then keep using the same terminal window while `dura` keeps running. You could also run `dura serve` in a\nwindow that you keep open.\n\nLet `dura` know which repositories to watch:\n\n```bash\n$ cd some/git/repo\n$ dura watch\n```\n\nRight now, you have to `cd` into each repo that you want to watch, one at a time.\n\nIf you have thoughts on how to do this better, share them [here](https://github.com/tkellogg/dura/issues/3). Until that\u0027s sorted, you can\nrun something like `find ~ -type d -name .git -prune | xargs -I= sh -c \"cd =/..; dura watch\"` to get started on your existing repos.\n\nMake some changes. No need to commit or even stage them. Use any Git tool to see the `dura` branches:\n\n```bash\n$ git log --all\n```\n\n`dura` produces a branch for every real commit you make and makes commits to that branch without impacting your working\ncopy. You keep using Git exactly as you did before.\n\n\nLet `dura` know that it should stop running in the background with the `kill` command.\n\n```bash\n$ dura kill\n```\n\nThe `kill` can happen in any directory. It indicates to the `serve`\nprocess that it should exit if there is",
"github_repo": "tkellogg/dura",
"github_stars": 4424,
"github_topics": [
"git",
"rust"
],
"homepage": "https://github.com/tkellogg/dura",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 15,
"installs_365d": 186,
"installs_90d": 34,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "Apache-2.0",
"llm_generated_at": null,
"llm_model": null,
"name": "dura",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 7547,
"rank_365d": 7544,
"rank_90d": 8312,
"raw_hash": "357bc5c816c5380e",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/d/dura.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "0.2.0",
"versioned_formulae": [],
"why_use_this": null
}