Add agentcfg extension - #29477
Conversation
- chore(raycast): add release-age quarantine to npmrc - chore(docs): switch site tooling from pnpm to npm with hardened config - chore(raycast): switch to npm with scripts disabled for store compatibility - feat(raycast): add one-click init and fix per-target action wording - chore(raycast): align with store guidelines - chore(raycast): add store listing screenshots - docs: add project logo and show it in readme - feat(raycast): add folder-symlink extension icon - feat(raycast): add store-ready readme, changelog, and first-run empty states - fix(cli): resolve -t by exact target name before group alias - feat(raycast): add per-target toggle submenu in all targets mode - fix(raycast): render disabled label as muted text instead of tag - fix(raycast): make disabled items visually explicit in manage items - feat(raycast): merge list and status into manage items command - feat(cli): include source path in status --json entries - chore(raycast): upgrade @raycast/utils to v2 to drop deprecated punycode chain - feat(raycast): implement list items, show status, and sync configs commands - feat(cli): report errors as JSON on stderr in --json mode - ci: cancel superseded runs to save runner minutes - chore(raycast): title-case extension name - feat(cli): add --json output to list and status - chore(raycast): scaffold Raycast extension and exclude it from release versioning - feat(docs): serve each page as raw markdown and add llms.txt indexes - docs: regenerate CLI reference for fork --claude-dir flag - fix(cli): update fork test fixture to plain-string hooks catalog entries - style: gofmt catalog, icons, and tui packages - fix(plugins): parse hooks catalog entries as plain strings too - fix(plugins): parse mcpServers/lspServers catalog entries as plain strings - fix(sync): tolerate dangling symlinks when copying a directory tree - feat(fork): support forking a plugin into multiple Claude Code homes - chore(release): exclude docs and workflow changes from release versioning - chore(main): release 0.2.0 (raycast#4) - fix(ci): pin pnpm version so the Pages build can resolve it - fix(cli): drop duplicated command title from generated CLI reference pages - fix(site): correct sandbox claim and tighten landing page copy - feat(site): replace PNG agent logos with SVGs and add Antigravity - style(site): restyle landing page and docs with a shared monochrome theme - refactor(site): move site/ to docs/, switch to pnpm with hardened install - feat(site): add Astro + Starlight landing page and docs site, deploy to GitHub Pages - feat(cli): auto-generate CLI reference docs from the Cobra command tree - chore(main): release 0.1.1 (raycast#3) - chore(release): drop redundant package-name to fix latest-release detection - fix(release): use plain semver tags and drop one-time version pin - chore(main): release agentcfg 0.1.0 (raycast#1) - docs: add license section to readme - fix(tui): use explicit enabled/disabled and backup status messages - fix(cli): clarify discover error when combining --add-all with --path - fix(cli): guard backup create against empty or missing target directories - fix(cli): add empty-state messages for list, status, and target list - fix(cli): unify target-not-found errors and fix silent uninstall no-op - fix(sync): improve no-target and failure feedback - docs: add public release guidance - build: require go 1.24 - fix(cli): fail on partial command errors - fix(sync): detect nested copy drift - fix(tui): force overlay dim styling - chore: split into two formulas, add --version to lazyagentcfg - chore: add goreleaser + release-please release pipeline - chore: add MIT license, fix comment, README, and unused fork param - refactor: add ImportItem and LookupTarget helpers, fix ContentHash determinism - refactor: extract fsutil for atomic write and JSON-patch helpers - refactor(tui): split app.go and overlay.go by concern - refactor(cli): split root.go into per-command files - style: drop redundant comments, dead wrappers, and duplicate path helper - feat(fork): replace skill extraction with whole-plugin fork via local marketplace - feat(cli): add fork command with list and status subcommands - feat(source): add command and rule as first-class syncable kinds - test: expand coverage for import, project, commands, and sync core - ci: pin actions to commit SHA - ci: add GitHub Actions workflow for vet and test - test: add CLI integration tests and harden sandbox isolation - fix(catalog): add Antigravity CLI skills path, fix Gemini migration notes - fix(catalog): remove codex skills/ — Codex CLI reads user skills from ~/.agents/skills/ - feat: add AGENTCFG_HOME override for isolated sandbox testing - feat: add Claude Code plugin forking, plugins view, and ghost entries - fix(version): auto-save active content as "previous" before switching - feat: add file versioning and editor shortcut - feat: improve backup with Prune, non-interactive restore, and TUI actions - feat: add target alias for grouping targets by agent type - test: add unit tests for source, lock, and backup packages - feat(tui): syntax-highlight YAML frontmatter in markdown preview - feat(tui): show last-modified time in preview summary - fix(tui): remove duplicate name from summary, brighten summary text - feat(tui): add file summary panel above preview with stats and token estimate - style(tui): style preview panel title - fix(watch): use shell script to avoid Make quoting issues with watchexec - chore: add watchexec watch target for TUI hot-reload - fix(tui): open /dev/tty explicitly for input and output - style(tui): refine row highlight and footer styling - fix(tui): full-width row highlight via withBg, drop cursor bar - style(tui): white second accent, sage row highlight for cursor visibility - fix(tui): reduce listHeight by 1 to account for footer separator - test(tui): add truncation test for preview panel title; fix comment - feat(tui): show current filename in preview panel title - feat(tui): add separator line between content and footer - style(tui): set initial TUI color scheme - refactor(tui): remove unused View parameters - feat(tui): float all overlays on dimmed background - feat(tui): add dimBackground and pasteOverlay compositing utilities - feat(tui): improve filter focus visual clarity with indicator and dimming - feat(tui): rewrite help overlay to document palette-driven interaction model - feat(tui): remove direct action hotkeys, update tab labels - feat(tui): wire Enter, number keys, and Ctrl+P to palette overlays - feat(tui): add buildGlobalActions for Ctrl+P palette - feat(tui): add buildItemActions and currentItemTitle - feat(tui): add filter focus mode with f/t activation and visual indicator - feat(tui): add paletteAction, paletteWidget, paletteOverlay - refactor(tui): extract filter cycle helpers, extend cfgReloadMsg with status - feat(tui): add agent type picker to addTargetOverlay - feat(tui): add StatusDisabled rendering, T toggle and u unmanage keybindings - feat(cli): add toggle and unmanage commands, show \'off\' in status for disabled items - feat(cli): add --agent to target add, --path/--as to discover, AGENT column in target list - feat(sync): add Unmanage to return items to real files - feat(sync): add Toggle to enable/disable items per target - feat(sync): add StatusDisabled, check IsDisabled in Inspect - feat(catalog): set Agent field on KnownAgents, add TargetFor constructor - fix(config): SubdirFor must not fall through to agent profile when Subdirs is explicitly set - feat(config): add Agent and Disabled fields to Target, update SupportsKind and SubdirFor - fix(agent): use source kind constants, fix copilot profile, add consistency test - feat(agent): add agent type registry with profiles - feat(tui): rewrite source views with per-agent badge columns and absent/n/a distinction - feat(sync): add ScanTargetDirs and StatusNotApplicable - feat(config): add SupportsKind to Target - fix(tui): show target status in its own box above preview in grouped mode - feat(tui): add grouped view and target filter to source view - feat: add adopt command to take over unmanaged files - refactor(sync): rename StatusForeign to StatusUnmanaged - feat(config): add per-target item exclusion - fix(tui): close gap in left panel top border - feat(tui): column headers, filter tab UX, and brand-colored agent names - fix(icons): opencode badge uses light gray bg with dark text - fix(icons): correct brand colors for all agents - feat(tui): lazygit-style box borders, selected row highlight, colored status - feat(sync): drift detection, bulk sync command, and backup commands - feat(backup): snapshot target dirs before sync - feat(lock): add lockfile package for install tracking - chore(deps): promote bubbles and huh to direct dependencies - fix(wizard): use TextBadge in huh forms to prevent Kitty placement stacking - feat(tui): overlay system, dual-panel layout, filter, and management actions - refactor(icons): replace half-block gallery with Badge+Preload API - feat: adaptive gallery cols from terminal width, fix half-block placeholder line count - feat: add Kitty graphics protocol renderer for crisp icon gallery, fallback to half-block - fix: use rows=cols for square icon aspect ratio, increase gallery to 10 cols - fix: correct alpha compositing, add area-averaging, re-render codex without white background - feat: embed agent logos and render half-block icon strips in TUI and init wizard - fix: resolve symlinks in contentHash so symlinked skills deduplicate correctly - fix: deduplicate import candidates by content hash in init wizard - feat: add interactive init wizard with agent discovery, target/import selection, and project setup - build: add install/uninstall/check/lint/help targets and GOBIN detection - feat: add project command and TUI projects view for in-repo agent config scanning - fix: correct agent catalog paths and add gemini cli - feat: add discover and import commands with opt-in target registration - feat: add catalog of known ai agent install dirs - fix: resolve symlinked dir root before copy and export copy helper - refactor: scan source tree with parametric subdir layout - docs: add readme with quickstart and strategy notes - build: add makefile with version ldflags - feat: add bubbletea tui - feat: add cli with list status install init and target - feat: add sync engine for link and copy install - feat: add config schema with link and copy strategies - feat: add source scanner for skills hooks and context - feat: add version package - chore: init go module - chore: initialize repository
|
Congratulations on your new Raycast extension! 🚀 We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
Greptile SummaryThis PR adds a new
Confidence Score: 5/5
Important Files Changed
Reviews (3): Last reviewed commit: "fix(raycast): confirm before uninstallin..." | Re-trigger Greptile |
- fix(raycast): avoid overriding built-in cmd+c with copy path shortcut - fix(raycast): use generated Preferences type for preference values
pernielsentikaer
left a comment
There was a problem hiding this comment.
Can you look into this suggestion?
I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊
| <Action | ||
| icon={Icon.Trash} | ||
| title={target === "all" ? "Uninstall" : `Uninstall from ${target}`} | ||
| shortcut={{ modifiers: ["cmd"], key: "backspace" }} | ||
| onAction={() => act(`Uninstalling ${group.name}…`, ["uninstall", group.name, ...scope])} | ||
| /> |
There was a problem hiding this comment.
Description: Uninstall is bound to ⌘⌫ and runs immediately via act(…, ["uninstall", …]) with no confirmation dialog. For many users uninstall is reversible (re-install / sync), so this is not framed as a hard bug — but if agentcfg uninstall removes links or copies from multiple agent homes at once (especially in All Targets mode), an accidental keystroke can thrash a carefully curated setup.
Suggestion: Optional confirmAlert (or Alert) before uninstall when target === "all" or always, with a short message naming the item and scope. Keep install/toggle/sync unconfirmed. Nice-to-have polish, not a merge blocker.
There was a problem hiding this comment.
I think this is a good - and necessary - suggestion, so I'll definitely add it before I click Ready for review again. Thanks for the suggestion!
Description
Simple Raycast extension to use my
agentcfgtool even more quicly.agentcfgis a CLI and TUI that manages AI agent config files and setup (hooks, skills, commands, plugins) across multiple agents by just symlinking them or copying them from a "master" source tree stored with agentcfg. Has best support for Claude Code, Codex and Copilot as they have the most stable plugin and skill system, but generally supports OpenCode, Gemini, Antigravity etc. too. Will likely be expanded with other commands later on. This is a first iteration to get it into Raycast for my own personal use.Screencast
agentcfg-raycast-screencast.mov
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder