Skip to content

feat(sync): sync assistant settings such as custom providers and API keys - #3

Merged
Fenish merged 1 commit into
mainfrom
feat/harness-settings-sync
Oct 11, 2026
Merged

Fenish merged 1 commit into
mainfrom
feat/harness-settings-sync

Conversation

@Fenish

@Fenish Fenish commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Adds a new item kind, setting: one item per assistant holding the settings people edit by hand, custom providers, base URLs and API keys included. Values are synced as they are; the pouch is end-to-end encrypted.

Supported: OpenCode (1 and 2, providers translated between them), Claude Code, Codex, Gemini CLI (settings.json and .env), Qwen Code, Copilot, Crush and Factory. Each assistant has an allowlist in sp-harness; MCP servers, hooks, plugins, credentials and machine-specific paths stay out.

  • Entries are tracked one by one (<file>:<path>), last writer wins, backups before writes.
  • Deleting an entry on one computer only excludes it there; the pouch and other computers keep it. skillpouch settings list | exclude | include.
  • A removed assistant folder clears its exclusions, so a reinstall syncs again. A newly installed assistant gets the pouch's settings on the next sync.
  • skillpouch select --off settings / --off <assistant>.
  • The daemon notices edits to settings files.

Companion web PR: skillpouch/skillpouch (feat/harness-settings-sync).

Testing

  • cargo fmt --check, clippy -D warnings, cargo test --workspace
  • scripts/e2e-settings.sh: three Docker computers with every assistant installed, the real API and web app, and a mock provider that checks each CLI accepts the synced provider and key. All scenarios pass for all eight assistants (arrive, cli, edit, delete, include, folder, reinstall, late install, select, OpenCode 1↔2, daemon, web).

@Fenish
Fenish merged commit c1673cd into main Oct 11, 2026
5 checks passed
@Fenish
Fenish deleted the feat/harness-settings-sync branch October 11, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant