[Feature]: Export/import configuration for backup and moving to another machine
Problem to solve
There's no in-app way to back up a working setup or duplicate it on a second
machine. Today the only path is to quit the app and hand-copy config.json out
of the platform data directory. That's undocumented, easy to get wrong (copying
a live file, or to the wrong path), and invisible to anyone who doesn't already
know where that file lives. There's also no way to snapshot a known-good
configuration before making changes to it.
Proposed behavior
An in-app Export that writes the current configuration to a single file,
and an Import that restores it on another install (or the same one). The
smallest useful outcome: after Export on machine A and Import on machine B, both
expose the same routes, providers, and gateway key — so client configuration is
identical on both without anyone touching the filesystem.
Because the configuration contains provider credentials and gateway keys, Export
should treat the file as sensitive: a clear warning at minimum, and ideally an
optional passphrase so a backup isn't plaintext secrets at rest. Import should
replace the existing configuration behind a confirmation, and apply the same
version migration the app already runs on load, so an older backup still imports
cleanly.
Nice-to-have, not required for a first version: a credential-free "routes and
provider definitions only" export, for sharing a setup without secrets.
Relevant context
- Applies to both the macOS app and the Linux headless CLI. On headless, an
equivalent export / import command line path would fit better than a file
dialog.
- Scope is a whole-configuration snapshot. Merging two existing configurations
(deduplicating providers or routes) is intentionally out of scope for a first
version.
- No provider, account, or route specifics are relevant — this is an
application-level capability.
Safety check
[Feature]: Export/import configuration for backup and moving to another machine
Problem to solve
There's no in-app way to back up a working setup or duplicate it on a second
machine. Today the only path is to quit the app and hand-copy
config.jsonoutof the platform data directory. That's undocumented, easy to get wrong (copying
a live file, or to the wrong path), and invisible to anyone who doesn't already
know where that file lives. There's also no way to snapshot a known-good
configuration before making changes to it.
Proposed behavior
An in-app Export that writes the current configuration to a single file,
and an Import that restores it on another install (or the same one). The
smallest useful outcome: after Export on machine A and Import on machine B, both
expose the same routes, providers, and gateway key — so client configuration is
identical on both without anyone touching the filesystem.
Because the configuration contains provider credentials and gateway keys, Export
should treat the file as sensitive: a clear warning at minimum, and ideally an
optional passphrase so a backup isn't plaintext secrets at rest. Import should
replace the existing configuration behind a confirmation, and apply the same
version migration the app already runs on load, so an older backup still imports
cleanly.
Nice-to-have, not required for a first version: a credential-free "routes and
provider definitions only" export, for sharing a setup without secrets.
Relevant context
equivalent
export/importcommand line path would fit better than a filedialog.
(deduplicating providers or routes) is intentionally out of scope for a first
version.
application-level capability.
Safety check
email addresses, private prompts, or other sensitive information.