Skip to content

[Feature]: Export/import configuration for backup and moving to another machine #20

Description

@jasonpaulso

[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

  • I searched existing issues for the same request.
  • This request contains no credentials, OAuth data, account identifiers,
    email addresses, private prompts, or other sensitive information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions