You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(sync-config-ai): add AI config sync TUI command (spec 007)
Introduces `dvmi sync-config-ai` — an interactive full-screen TUI for
managing AI coding tool configurations (MCP servers, commands, skills,
agents) across VS Code Copilot, Claude Code, OpenCode, Gemini CLI, and
GitHub Copilot CLI from a single place.
Key capabilities:
- Filesystem scan on every launch detects installed AI tools (project +
global paths, including ~/.config/opencode/ for globally installed OpenCode)
- 5-tab TUI: Environments (read-only) + dedicated tab per category type
(MCPs | Commands | Skills | Agents) — each tab shows only its entries
- Inline forms with type-specific fields and a mini text editor for
multi-line content; Environments multi-select filtered to compatible
tools per compatibility matrix
- Full CRUD: create, edit, deactivate/activate, delete with confirmation
- Entries persist in ~/.config/dvmi/ai-config.json and are deployed to
target environment config files on save
- Chezmoi integration: auto-syncs AI config after mutations if configured;
shows setup tip in footer otherwise
- --json flag for non-interactive/CI use
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore(release): sync version to 1.5.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor: apply consistent code style across codebase
Format all source and test files with Prettier (space-free destructuring,
consistent import spacing). Add project-level Claude Code slash commands
under .claude/commands/ for speckit workflow integration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: exclude .claude/ from version control
Add .claude/ to .gitignore and remove tracked files — project-level
Claude Code commands and memory are local-only artifacts.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(changelog): rewrite with accurate release history for devvami
Replace stale content (old repo references, incorrect versions) with
the actual release history from v1.0.0 to v1.4.2, plus an [Unreleased]
section documenting the sync-config-ai feature landing in v1.5.0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(changelog): move sync-config-ai to v1.5.0 release section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(readme): add missing commands to Commands section [skip ci]
Added dotfiles, prompts, vuln, logs, security, sync-config-ai, and welcome
commands that existed in src/ but were not documented in the README.
Also updated the "What It Does" feature table to reflect the full feature set.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(sync-config-ai): extend TUI to 10 envs, 5 categories, native entries, drift detection
- Add 5 new AI environments: Cursor, Windsurf, Continue.dev, Zed, Amazon Q
- Add Rules category (5th type) with MDC/markdown deployment support
- Add native entry parsing — show unmanaged items in read-only Native section
- Add drift detection with re-deploy/accept-changes resolution UI
- Add env var masking for MCP entries with r to reveal, i to import native
- Wire chezmoi sync after every store mutation
- Bump schema to v2 with migration, expand --json output
- Bump version to 1.5.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(changelog,readme): update for v1.5.1 sync-config-ai extension
- Add v1.5.1 changelog entry with new environments, categories, native entries, drift detection
- Update README sync-config-ai section with 10 envs, TUI sections, key bindings, --json flag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(sync-config-ai): dynamic MCP form, env vars, type fix, args/env serialization (v1.5.2)
- Dynamic form fields based on transport type (stdio shows Command/Args, sse/http shows URL)
- Env vars editor field (KEY=VALUE per line) for MCP servers
- Transport-specific validation (stdio requires Command, sse/http requires URL)
- Args as multi-line editor (one per line) instead of space-separated text
- Fix params pollution: name/environments/description no longer leak into MCPParams
- Fix type field: omit type for stdio (environments infer from command)
- Fix env/args serialization: always write as object/array, not strings
- Normalize legacy string args/env from older store entries
- Align drift detection with deployer output for stdio type omission
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [1.5.2] - 2026-04-02
11
+
12
+
### Added
13
+
14
+
-**sync-config-ai:** Dynamic MCP form — fields now adapt to transport type; stdio shows Command/Args, sse/streamable-http shows URL, irrelevant fields are hidden
15
+
-**sync-config-ai:** Env vars support — new editor field for environment variables (KEY=VALUE format) in MCP creation/editing
16
+
-**sync-config-ai:** Transport-specific validation — stdio requires Command, sse/streamable-http requires URL, env var format is validated
17
+
-**sync-config-ai:** Args changed from single text field to multi-line editor (one arg per line) to support args with spaces
18
+
-**sync-config-ai:**`hidden` field property in form system for dynamic field visibility
19
+
-**sync-config-ai:**`customValidator` support on FormState for category-specific validation
20
+
-**sync-config-ai:**`nextVisibleIndex` helper for Tab/Shift+Tab navigation over hidden fields
21
+
22
+
### Fixed
23
+
24
+
-**sync-config-ai:** Fixed params pollution — form values (name, environments, description) no longer leak into MCPParams on save
25
+
-**sync-config-ai:** Fixed type field in deployed config — stdio transport no longer writes `type: "stdio"`; most environments infer it from the presence of `command`
26
+
-**sync-config-ai:** Fixed env vars serialization — env vars are now correctly written as `Record<string, string>` objects instead of raw strings
27
+
-**sync-config-ai:** Fixed args serialization — args are now correctly written as `string[]` arrays instead of newline-joined strings
28
+
-**sync-config-ai:** Normalized legacy data — deployer now auto-converts string-format args/env from older store entries into proper arrays/objects
29
+
-**sync-config-ai:** Aligned drift detection with deployer output for stdio type omission
Copy file name to clipboardExpand all lines: README.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -193,6 +193,9 @@ The TUI shows 6 tabs — **Environments** (read-only detection) + one tab per ca
193
193
-**Native** — items already in each tool's config that dvmi doesn't manage yet (press `i` to import)
194
194
-**Managed** — entries you've added via dvmi; synced across all target environments automatically
195
195
196
+
MCP server forms adapt to the selected transport type: **stdio** shows Command and Args fields, **sse/streamable-http** shows a URL field, and irrelevant fields are hidden automatically. Environment variables (e.g. API keys) can be set via a dedicated editor in `KEY=VALUE` format. Args are entered one per line for proper support of arguments containing spaces. Transport-specific validation ensures stdio entries have a command and SSE/streamable-http entries have a URL before saving.
197
+
198
+
196
199
Supports 10 AI environments: VS Code Copilot, Claude Code, OpenCode, Gemini CLI, GitHub Copilot CLI, Cursor, Windsurf, Continue.dev, Zed, Amazon Q.
0 commit comments