{"id":51471549,"url":"https://github.com/pgilad/tmux-continuum","last_synced_at":"2026-07-06T18:01:38.095Z","repository":{"id":351749239,"uuid":"1187875809","full_name":"pgilad/tmux-continuum","owner":"pgilad","description":"Continuous saving of tmux environment. Automatic restore when tmux is started. Automatic tmux start when computer is turned on.","archived":false,"fork":false,"pushed_at":"2026-06-02T06:27:06.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-02T08:17:07.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgilad.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2026-03-21T09:53:15.000Z","updated_at":"2026-06-02T06:27:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pgilad/tmux-continuum","commit_stats":null,"previous_names":["pgilad/tmux-continuum"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgilad/tmux-continuum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgilad%2Ftmux-continuum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgilad%2Ftmux-continuum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgilad%2Ftmux-continuum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgilad%2Ftmux-continuum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgilad","download_url":"https://codeload.github.com/pgilad/tmux-continuum/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgilad%2Ftmux-continuum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35201088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-07-06T18:01:34.096Z","updated_at":"2026-07-06T18:01:37.819Z","avatar_url":"https://github.com/pgilad.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tmux-continuum\n\nContinuous saving and automatic restoring for [tmux](https://github.com/tmux/tmux).\n\n- **Auto-save** — periodically saves your tmux environment in the background\n- **Auto-restore** — restores the last saved environment when tmux starts\n- **Auto-start** — optionally starts tmux on boot (macOS / Linux)\n\nNo matter the crash or restart, tmux will be there how you left it.\n\nWorks on Linux and macOS. Requires **tmux 3.2+** and **bash**.\n\n## Why this fork?\n\nThis fork keeps the familiar tmux-continuum workflow while modernizing the\nimplementation:\n\n- Uses a single long-running background daemon instead of status-line hooks,\n  locks, and repeated process spawning\n- Restores exactly once per tmux server lifetime, so re-sourcing your config\n  never unexpectedly restores over your current session\n- Provides explicit boot management commands (`:continuum-boot-enable` and\n  `:continuum-boot-disable`) using standalone launchd/systemd user services\n- Follows XDG paths for the auto-restore halt file\n- Drops legacy options and behavior that made the original harder to reason\n  about\n\nUse this fork if you want the same auto-save/auto-restore idea as the original\n[tmux-plugins/tmux-continuum](https://github.com/tmux-plugins/tmux-continuum),\nbut with simpler internals, safer restore behavior, and cleaner boot support.\n\n## How it works\n\nContinuum runs a single background daemon (via `tmux run-shell -b`) that\nsleeps for the configured interval and then calls\n[tmux-resurrect](https://github.com/pgilad/tmux-resurrect)'s save\nscript. No status-line hacks, no locks, no periodic forks.\n\nOn a fresh server start, continuum optionally triggers resurrect's restore\nscript exactly once, guarded by a server-scoped flag — re-sourcing your\nconfig will never re-trigger a restore.\n\n## Requirements\n\n- `tmux 3.2` or higher\n- `bash`\n- [tmux-resurrect](https://github.com/pgilad/tmux-resurrect)\n\n**tmux-resurrect must load before tmux-continuum.** List it first in your\nplugin manager config.\n\n## Installation\n\n### With [tpm-rs](https://github.com/pgilad/tpm-rs) (recommended)\n\n[tpm-rs](https://github.com/pgilad/tpm-rs) is a modern, fast tmux plugin\nmanager written in Rust. Add the plugins:\n\n```sh\ntpm add pgilad/tmux-resurrect\ntpm add pgilad/tmux-continuum\n```\n\nMake sure your `.tmux.conf` loads tpm-rs:\n\n```tmux\nrun-shell \"tpm load\"\n```\n\nReload your config:\n\n```sh\ntmux source-file ~/.tmux.conf\n```\n\nAuto-save starts as soon as the plugin is loaded.\n\n### Manual\n\n```sh\ngit clone https://github.com/pgilad/tmux-continuum ~/path/to/continuum\n```\n\nAdd to `.tmux.conf`:\n\n```tmux\nrun-shell ~/path/to/continuum/continuum.tmux\n```\n\nReload: `tmux source-file ~/.tmux.conf`\n\n## Configuration\n\n| Option | Default | Description |\n|---|---|---|\n| `@continuum-save-interval` | `15` | Auto-save interval in minutes. `0` to pause. |\n| `@continuum-restore` | `off` | Set to `on` to restore on fresh server start. |\n\n### Auto-save\n\nSaves run every 15 minutes by default. Change the interval:\n\n```tmux\nset -g @continuum-save-interval '30'\n```\n\nDisable (pause) saving:\n\n```tmux\nset -g @continuum-save-interval '0'\n```\n\nSetting the interval to `0` pauses the daemon — it checks back every 60\nseconds. Change the interval back to re-enable without re-sourcing your config.\n\n### Auto-restore\n\n```tmux\nset -g @continuum-restore 'on'\n```\n\nRestore runs **once** per server lifetime, on the first plugin load after server\nstart. Re-sourcing `.tmux.conf` will not trigger it again.\n\nTo suppress restore without changing your config, create a halt file:\n\n```sh\nmkdir -p \"${XDG_CONFIG_HOME:-$HOME/.config}/tmux\"\ntouch \"${XDG_CONFIG_HOME:-$HOME/.config}/tmux/no-auto-restore\"\n```\n\nOverride the halt file path with the `TMUX_CONTINUUM_NO_RESTORE` env var.\n\n### Auto-start on boot\n\nStart a headless tmux server on login. From inside tmux:\n\n```\n:continuum-boot-enable\n```\n\nThis installs a **macOS LaunchAgent** or **Linux systemd user unit** that runs\n`tmux new-session -d`. The service is standalone — it does not reference the\nplugin directory and keeps working even if the plugin is removed.\n\nTo attach automatically when you open a terminal, add to your shell rc:\n\n```sh\n[[ -z \"$TMUX\" ]] \u0026\u0026 tmux attach 2\u003e/dev/null\n```\n\nTo remove:\n\n```\n:continuum-boot-disable\n```\n\nSee [docs/automatic_start.md](docs/automatic_start.md) for details.\n\n### Status line\n\nAdd `#{continuum_status}` to `status-right` or `status-left`:\n\n```tmux\nset -g status-right 'Continuum: #{continuum_status}'\n```\n\nShows:\n- `3m ago` — time since last save\n- `15m` — configured interval (before first save completes)\n- `off` — saving is paused\n\nSee [docs/continuum_status.md](docs/continuum_status.md).\n\n## Docs\n\n- [FAQ](docs/faq.md)\n- [Auto-start on boot](docs/automatic_start.md)\n- [Status line interpolation](docs/continuum_status.md)\n\n## Migrating from older versions\n\nIf upgrading from a version that used `@continuum-boot`:\n\n1. Remove `@continuum-boot` and `@continuum-boot-options` from `.tmux.conf`.\n2. Run `:continuum-boot-enable` inside tmux to install the new service.\n3. Delete the old macOS plist if present:\n   `rm ~/Library/LaunchAgents/Tmux.Start.plist`\n4. Move the old halt file if used:\n   `mv ~/tmux_no_auto_restore \"${XDG_CONFIG_HOME:-$HOME/.config}/tmux/no-auto-restore\"`\n\nRemoved options (safe to delete from `.tmux.conf`):\n- `@continuum-boot`, `@continuum-boot-options`\n- `@continuum-restore-max-delay`\n- `@continuum-systemd-start-cmd`\n- `@continuum-status-on-wrap-style`, `@continuum-status-off-wrap-style`\n\n## Contributing\n\nBug reports and contributions are welcome. See\n[CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\n[MIT](LICENSE)\n\n## Credits\n\nBased on the original\n[tmux-plugins/tmux-continuum](https://github.com/tmux-plugins/tmux-continuum).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgilad%2Ftmux-continuum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgilad%2Ftmux-continuum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgilad%2Ftmux-continuum/lists"}