Export/import automations as version-controlled JSON (config-as-code for Automations)
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 153
- PR merge metrics
- No merged PRs in 30d
Description
### Summary
Requesting a way to export the Automations list to a plain JSON file (and import from one), so automations can be version-controlled, backed up, and shared/restored across machines - similar to how other app config (MCP servers, permissions, settings) is already stored as flat JSON under `~/.copilot/`.
### Motivation
Automations currently live only inside the app's internal SQLite store (`data.db`), with no export path. This makes it hard to:
- Back up or restore automations independent of full app state
- Version-control automation definitions alongside a repo/dotfiles setup
- Migrate automations to a new machine
Issue #1643 shows what happens without this: a user hit a `data.db` schema-version mismatch during a downgrade and had no way to recover automations short of deleting the whole database and losing session history with it.
### Proposed solution
- "Export automations to JSON" / "Import automations from JSON" actions in the Automations UI, or
- A flat, human-editable automations file (mirroring how `mcp-config.json`/`settings.json`/`permissions-config.json` already work) that the app reads on startup, so power users can hand-edit and symlink it into version control
### Additional context
Related to the scheduling limitations raised in #2130 - a config-as-code path would also make it easier to share/reuse automation definitions across teams or repos.
Contributor guide
Research direction
Start by comparing the existing flat JSON configuration files under ~/.copilot/—including mcp-config.json, settings.json, and permissions-config.json—with automation storage in data.db. Define whether export/import actions in the Automations UI or a startup-loaded file is the intended path, then verify that automation definitions can be backed up, restored, edited, and moved between machines without affecting session history.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- sqlite
- Domain
- databases, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100