Title: feat: automated periodic sync via shell profile hook or cron · Issue #343 · EntityProcess/allagents · GitHub
Open Graph Title: feat: automated periodic sync via shell profile hook or cron · Issue #343 · EntityProcess/allagents
X Title: feat: automated periodic sync via shell profile hook or cron · Issue #343 · EntityProcess/allagents
Description: Summary AllAgents currently requires manual allagents update to sync plugins and skills. Teams like WiseTech Global have built their own sync scripts that auto-run once per day via shell profile hooks or scheduled tasks. Motivation Resea...
Open Graph Description: Summary AllAgents currently requires manual allagents update to sync plugins and skills. Teams like WiseTech Global have built their own sync scripts that auto-run once per day via shell profile ho...
X Description: Summary AllAgents currently requires manual allagents update to sync plugins and skills. Teams like WiseTech Global have built their own sync scripts that auto-run once per day via shell profile ho...
Opengraph URL: https://github.com/EntityProcess/allagents/issues/343
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"feat: automated periodic sync via shell profile hook or cron","articleBody":"## Summary\n\nAllAgents currently requires manual `allagents update` to sync plugins and skills. Teams like WiseTech Global have built their own sync scripts that auto-run once per day via shell profile hooks or scheduled tasks.\n\n## Motivation\n\nResearch into [WiseTechGlobal/Tools.WtgCopilotSkills](https://github.com/WiseTechGlobal/Tools.WtgCopilotSkills) showed they built `install-skill-sync-profile.ps1` (runs on shell open, once/day) and `install-skill-sync-scheduled-task.ps1` (Windows Task Scheduler). This removes friction — developers never need to remember to sync.\n\n## Proposed Solution\n\nAdd a command like `allagents sync install-hook` that:\n\n1. **Shell profile hook** — appends a snippet to `.bashrc`/`.zshrc`/PowerShell profile that runs `allagents update` silently, debounced to once per day\n2. **Cron/scheduled task** — registers a cron job (Linux/macOS) or scheduled task (Windows) for periodic sync\n3. **State tracking** — stores last-run timestamp (e.g., `~/.allagents/last-sync`) to avoid redundant runs\n\nShould include `allagents sync uninstall-hook` to cleanly remove.\n\n## Implementation Notes\n\n- CLI commands are in `src/cli/commands/` — add a new `sync-hook.ts` or extend `workspace.ts`\n- The sync entry point is `syncWorkspace()` in `src/core/sync.ts`\n- Shell profile snippet should: check last-run timestamp, skip if \u003c24h, run `allagents update --silent` in background, update timestamp\n- Consider a `--interval` flag (default `24h`) for configurable debounce\n- Cron approach: `crontab -e` on Linux/macOS, `schtasks` on Windows\n- Profile approach: append a guarded block (with start/end markers for clean removal) to shell rc file\n\n## Acceptance Criteria\n\n- [ ] `allagents sync install-hook --profile` appends auto-sync snippet to the user's shell profile (`.bashrc`, `.zshrc`, or PowerShell `$PROFILE`)\n- [ ] Snippet runs `allagents update` silently in background, debounced to once per configured interval\n- [ ] `allagents sync install-hook --cron` registers a cron job (Linux/macOS) or scheduled task (Windows)\n- [ ] `allagents sync uninstall-hook` cleanly removes the hook (profile snippet or cron entry)\n- [ ] Idempotent — running install-hook twice doesn't duplicate the snippet/cron\n- [ ] Last-run state stored in `~/.allagents/last-sync` (or similar)\n- [ ] Works on macOS, Linux, and Windows\n\n## Context\n\nFrom analysis of enterprise adoption patterns — reducing sync friction is a key driver for team adoption.","author":{"url":"https://github.com/christso","@type":"Person","name":"christso"},"datePublished":"2026-03-27T09:39:19.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/343/allagents/issues/343"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:db8dc348-3beb-da17-5642-10c1ac7028fb |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D9EA:D21CA:B8BA41:FD500E:6A4C91C3 |
| html-safe-nonce | a5e1e3c5b7f4948300a85b3e687b8a1ab9db904dde7234d0ddabfade24611cc6 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOUVBOkQyMUNBOkI4QkE0MTpGRDUwMEU6NkE0QzkxQzMiLCJ2aXNpdG9yX2lkIjoiNjc4NTAyMTg3OTUyNDI5OTIwMyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | dbf9abc770f1bc73a61f9d6fad8837ebcad20905fa83235e35176d7fe7aff097 |
| hovercard-subject-tag | issue:4151048174 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/EntityProcess/allagents/343/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4219db3e7262903fe118ac64ad1b5f717542153d54f746332d9d23230fc0f290/EntityProcess/allagents/issues/343 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4219db3e7262903fe118ac64ad1b5f717542153d54f746332d9d23230fc0f290/EntityProcess/allagents/issues/343 |
| og:image:alt | Summary AllAgents currently requires manual allagents update to sync plugins and skills. Teams like WiseTech Global have built their own sync scripts that auto-run once per day via shell profile ho... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | christso |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| go-import | github.com/EntityProcess/allagents git https://github.com/EntityProcess/allagents.git |
| octolytics-dimension-user_id | 8837957 |
| octolytics-dimension-user_login | EntityProcess |
| octolytics-dimension-repository_id | 1139437609 |
| octolytics-dimension-repository_nwo | EntityProcess/allagents |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1139437609 |
| octolytics-dimension-repository_network_root_nwo | EntityProcess/allagents |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7a2dede45637df6b92ddcfe2a557e67d4b5854ae |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width