agentinit 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [1.17.0](https://github.com/agentinit/agentinit/compare/v1.16.2...v1.17.0) (2026-04-02)
2
+
3
+
4
+ ### Features
5
+
6
+ * **skills:** add shared AGENTS install target ([4815ab1](https://github.com/agentinit/agentinit/commit/4815ab1d9c6c1dd9567c89dac6a6e9de0bb1aae8))
7
+
8
+ ## [1.16.2](https://github.com/agentinit/agentinit/compare/v1.16.1...v1.16.2) (2026-04-01)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **skills:** harden GitHub subpath resolution ([ca353ad](https://github.com/agentinit/agentinit/commit/ca353ad46c93180b2cc0e86f89a6ea2ee53b9504))
14
+
1
15
  ## [1.16.1](https://github.com/agentinit/agentinit/compare/v1.16.0...v1.16.1) (2026-04-01)
2
16
 
3
17
 
package/README.md CHANGED
@@ -2,20 +2,20 @@
2
2
 
3
3
  > A CLI tool for managing and configuring AI coding agents
4
4
 
5
- AgentInit transforms AI agent configuration from a fragmented, manual process into a unified, automated workflow that ensures every developer gets consistent, context-aware AI assistance tailored to their project's specific needs.
5
+ Unified CLI for configuring AI coding agents across editors and tools.
6
6
 
7
- ## Features
7
+ ## Features
8
8
 
9
- - **🤖 Universal Agent Configuration**: Unified `agents.md` file that syncs with all major AI coding agents
10
- - **🔍 Smart Stack Detection**: Automatically detects project language, framework, and tools
11
- - **🔄 Bidirectional Sync**: Keep agent configurations in sync across Claude, Cursor, Windsurf, and more
12
- - **📦 MCP Management**: Configure, inspect, and verify Model Context Protocol servers
13
- - **📋 Rules Templates**: Apply coding best practices with predefined rule templates (Git, testing, docs, linting)
14
- - **🔌 Plugin Marketplace**: Install portable skills and MCP bundles from built-in or custom marketplaces
15
- - **⚙️ Project Templates**: Pre-built templates for web apps, CLI tools, libraries, and more
16
- - **🎯 Stack-Aware Guidance**: Customized instructions based on your technology stack
9
+ - **Universal Agent Configuration**: Unified `agents.md` file that syncs with all major AI coding agents
10
+ - **Smart Stack Detection**: Automatically detects project language, framework, and tools
11
+ - **Bidirectional Sync**: Keep agent configurations in sync across Claude, Cursor, Windsurf, and more
12
+ - **MCP Management**: Configure, inspect, and verify Model Context Protocol servers
13
+ - **Rules Templates**: Apply coding best practices with predefined rule templates (Git, testing, docs, linting)
14
+ - **Plugin Marketplace**: Install portable skills and MCP bundles from built-in or custom marketplaces
15
+ - **Project Templates**: Pre-built templates for web apps, CLI tools, libraries, and more
16
+ - **Stack-Aware Guidance**: Customized instructions based on your technology stack
17
17
 
18
- ## 🚀 Quick Start
18
+ ## Quick Start
19
19
 
20
20
  ### Installation
21
21
 
@@ -51,7 +51,7 @@ agentinit mcp add --verify \
51
51
  NO_COLOR=1 agentinit plugins list
52
52
  ```
53
53
 
54
- ## 📋 Commands
54
+ ## Commands
55
55
 
56
56
  ### `agentinit init`
57
57
 
@@ -186,6 +186,9 @@ agentinit skills add vercel-react-best-practices
186
186
  # Install all discovered skills for detected agents using canonical storage
187
187
  agentinit skills add ./skills
188
188
 
189
+ # Install a skill stored in a repository subdirectory
190
+ agentinit skills add owner/repo/path/to/skill
191
+
189
192
  # Install marketplace-hosted skills explicitly
190
193
  agentinit skills add claude/skill-creator
191
194
  agentinit skills add skill-creator --from claude
@@ -199,29 +202,19 @@ agentinit skills add owner/repo --global --agent claude --skill openai-docs
199
202
  agentinit skills add owner/repo --global --agent openclaw
200
203
  agentinit skills add owner/repo --global --agent hermes
201
204
 
205
+ # Install directly into the shared AGENTS.md canonical store
206
+ agentinit skills add owner/repo --global --agent agents
207
+
202
208
  # Force copied installs instead of canonical symlink installs
203
209
  agentinit skills add ./skills --copy
204
210
 
205
211
  # Review and clean up installed skills
206
212
  agentinit skills list
213
+ agentinit skills list --agent agents
207
214
  agentinit skills remove openai-docs
208
215
  ```
209
216
 
210
- If you run `skills add` without `--agent` or `--yes`, AgentInit prompts for install scope first (`project` or `global`), then prompts for the agent skill directories to target. If no project agent files are detected, it still lets you choose project agent directories manually and points you to `agentinit init` for future auto-detection.
211
-
212
- Skills are installed into a canonical store by default: project installs use `.agents/skills/`, and global installs use `~/.agents/skills/`. Agent-specific paths are symlinked to that store when they differ. Use `--copy` or `--copy-skills` to force independent copies instead.
213
-
214
- OpenClaw participates in the shared project skills ecosystem via `.agents/skills/`, and also exposes a dedicated global skills directory at `~/.openclaw/skills/`. AgentInit treats `~/.openclaw` as an availability signal when offering OpenClaw install targets, but does not count that home-directory marker as a project-level agent detection signal.
215
-
216
- Hermes follows the same model: project skills come from `.agents/skills/`, global installs go to `~/.hermes/skills/`, and `~/.hermes` is used only as an availability signal for Hermes install targets.
217
-
218
- Some agents share the same native skills directory. For example, Claude Code and Claude Desktop both use `~/.claude/skills/`, so `skills remove --agent ...` will skip deleting that shared path while another agent still depends on it.
219
-
220
- Bare skill names resolve from your configured default marketplace when one is set. Without a configured default, AgentInit falls back to the public skills catalog used by the open agent skills ecosystem: `vercel-labs/agent-skills`. Use `./name` for a local path, `owner/repo` for an explicit GitHub repository, or `--from <marketplace>` / `<marketplace>/<name>` for marketplace-backed sources.
221
-
222
- Marketplace-backed `skills add` installs only the discovered skills. If a marketplace source also contains MCP servers or other portable components, AgentInit warns and points you to `agentinit plugins install ...` for the full install.
223
-
224
- If a marketplace lookup misses and the source still looks like a GitHub repository, AgentInit warns and tries the matching GitHub repo directly as a fallback. Built-in verified repos like `openai/codex-plugin-cc` are marked as verified, and you can add your own exact `owner/repo` entries with `agentinit config verified-repos add ...`. Other fallback repos remain explicitly unverified.
217
+ Skills are installed into a canonical store by default (`.agents/skills/` for project, `~/.agents/skills/` for global), with agent-specific paths symlinked automatically. Bare skill names resolve from your configured default marketplace, falling back to the public catalog at `vercel-labs/agent-skills`. Use `./name` for local paths, `owner/repo` for GitHub repos, or `--from <marketplace>` for explicit marketplace sources.
225
218
 
226
219
  ### `agentinit plugins`
227
220
 
@@ -255,16 +248,7 @@ agentinit plugins list
255
248
  agentinit plugins remove code-review
256
249
  ```
257
250
 
258
- **Marketplace Rules:**
259
- - Use `<marketplace>/<plugin>` or `--from <marketplace>` when installing from a marketplace.
260
- - Bare plugin installs like `agentinit plugins install code-review` resolve through your configured default marketplace when one is set. Without a configured default, AgentInit falls back to the first available marketplace (`agentinit` by default).
261
- - `plugins search` uses your configured default marketplace when one is set. Without a configured default, it still requires `--from <marketplace>`.
262
- - `plugins search --category <category>` uses marketplace-specific categories. Examples: Claude uses `official` and `community`, AgentInit/custom marketplaces use `skills`, `mcps`, and `rules`, and OpenAI uses `curated`, `system`, and `experimental`.
263
- - Implemented marketplaces today include `claude` (Anthropic's Claude plugin marketplace) and `openai` (the OpenAI Codex skills catalog).
264
- - You can add your own marketplaces with `agentinit config marketplaces add <identifier> <repo-url>`.
265
- - If a marketplace lookup misses but the source still looks like `owner/repo`, AgentInit warns and tries that GitHub repository directly. Exact repos added with `agentinit config verified-repos add <owner/repo>` are labeled as verified during that fallback.
266
- - For Claude-format plugins, `plugins install` installs portable skills and MCP servers for compatible selected agents. If a native Claude Code plugin bundle is also present, AgentInit installs that bundle into `~/.claude/plugins` when `claude` is selected, registers the corresponding Claude marketplace metadata, and skips portable skill fallback for any selected agents that share Claude Code's skills directory. Portable MCP installs still apply to other compatible agents.
267
- - Claude-native plugin payloads are user-scoped and stored under `~/.claude/plugins`, even when the AgentInit install itself is project-scoped.
251
+ Bare plugin names resolve through your configured default marketplace. Built-in marketplaces include `claude` and `openai`; add custom ones with `agentinit config marketplaces add`. For Claude-format plugins, native bundles are installed into `~/.claude/plugins` alongside portable skill and MCP installs.
268
252
 
269
253
  ### `agentinit config`
270
254
 
@@ -302,12 +286,7 @@ agentinit revert --dry-run # Preview what would be reverted
302
286
  agentinit revert --keep-backups
303
287
  ```
304
288
 
305
- ### Compatibility
306
-
307
- `agentinit apply` is now the project-level orchestration command for sync, project skills, and managed ignore state.
308
- Legacy `agentinit apply --mcp-*`, `--rules`, and related flags still work for backward compatibility, and `agentinit verify_mcp` remains deprecated in favor of `agentinit mcp verify`.
309
-
310
- ## 🏗️ Project Structure
289
+ ## Project Structure
311
290
 
312
291
  AgentInit creates and manages these key files:
313
292
 
@@ -323,7 +302,7 @@ your-project/
323
302
  └── .agentinit/ # Managed state and internal backups
324
303
  ```
325
304
 
326
- ## 📖 Configuration
305
+ ## Configuration
327
306
 
328
307
  ### agents.md Structure
329
308
 
@@ -368,23 +347,23 @@ Supported agents today are Claude Code, Claude Desktop, Cursor, Windsurf, GitHub
368
347
 
369
348
  | Agent | Config File | Status |
370
349
  |-------|-------------|--------|
371
- | Claude | `CLAUDE.md` | |
372
- | Claude Desktop | global desktop config | |
373
- | Cursor | `.cursorrules` | |
374
- | Windsurf | `.windsurfrules` | |
375
- | GitHub Copilot | `AGENTS.md`, `.vscode/mcp.json` | |
376
- | Aider | `AGENTS.md`, `.aider.conf.yml` | |
377
- | Cline | `.clinerules` | |
378
- | Codex CLI | `.codex/config.toml` | |
379
- | Gemini CLI | `.gemini/settings.json` | |
380
- | OpenClaw | `~/.openclaw` presence, `~/.openclaw/skills/` | skills |
381
- | Hermes | `~/.hermes` presence, `~/.hermes/skills/` | skills |
382
- | RooCode | `AGENTS.md`, `.roo/mcp.json` | |
383
- | Zed | `AGENTS.md`, `.zed/settings.json` | |
384
- | Droid | `AGENTS.md`, `.factory/mcp.json` | |
385
- | Codeium | `.codeium/config.json` | 🚧 |
386
-
387
- ## 🔧 Stack Detection
350
+ | Claude | `CLAUDE.md` | Supported |
351
+ | Claude Desktop | global desktop config | Supported |
352
+ | Cursor | `.cursorrules` | Supported |
353
+ | Windsurf | `.windsurfrules` | Supported |
354
+ | GitHub Copilot | `AGENTS.md`, `.vscode/mcp.json` | Supported |
355
+ | Aider | `AGENTS.md`, `.aider.conf.yml` | Supported |
356
+ | Cline | `.clinerules` | Supported |
357
+ | Codex CLI | `.codex/config.toml` | Supported |
358
+ | Gemini CLI | `.gemini/settings.json` | Supported |
359
+ | OpenClaw | `~/.openclaw` presence, `~/.openclaw/skills/` | Supported (skills) |
360
+ | Hermes | `~/.hermes` presence, `~/.hermes/skills/` | Supported (skills) |
361
+ | RooCode | `AGENTS.md`, `.roo/mcp.json` | Supported |
362
+ | Zed | `AGENTS.md`, `.zed/settings.json` | Supported |
363
+ | Droid | `AGENTS.md`, `.factory/mcp.json` | Supported |
364
+ | Codeium | `.codeium/config.json` | Partial |
365
+
366
+ ## Stack Detection
388
367
 
389
368
  AgentInit automatically detects your project's technology stack:
390
369
 
@@ -401,7 +380,7 @@ AgentInit automatically detects your project's technology stack:
401
380
  - Go (Go modules)
402
381
  - Java (Maven, Gradle)
403
382
 
404
- ## 📦 MCP Registry
383
+ ## MCP Registry
405
384
 
406
385
  AgentInit includes a curated registry of popular MCPs:
407
386
 
@@ -414,11 +393,11 @@ AgentInit includes a curated registry of popular MCPs:
414
393
  | supabase-mcp | database | Supabase integration |
415
394
  | git-mcp | version-control | Enhanced Git operations |
416
395
 
417
- ## 📚 Library API
396
+ ## Library API
418
397
 
419
398
  AgentInit can be used as a library in your Node.js/TypeScript applications for programmatic MCP server verification and management.
420
399
 
421
- > **📖 Full Documentation:** See [src/lib/verifier/README.md](src/lib/verifier/README.md) for complete API reference, examples, and advanced usage.
400
+ > **Full Documentation:** See [src/lib/verifier/README.md](src/lib/verifier/README.md) for complete API reference, examples, and advanced usage.
422
401
 
423
402
  ### Installation
424
403
 
@@ -446,46 +425,17 @@ const result = await verifier.verifyServer({
446
425
  });
447
426
 
448
427
  if (result.status === 'success') {
449
- console.log(`✅ Connected to ${result.server.name}`);
428
+ console.log(`Connected to ${result.server.name}`);
450
429
  console.log(`Tools: ${result.capabilities?.tools.length}`);
451
430
  console.log(`Total tokens: ${result.capabilities?.totalToolTokens}`);
452
431
  }
453
432
  ```
454
433
 
455
- ### Advanced Features
456
-
457
- The verifier supports additional options for detailed inspection:
458
-
459
- ```typescript
460
- // Fetch resource contents and prompt templates
461
- const result = await verifier.verifyServer(
462
- serverConfig,
463
- {
464
- timeout: 15000,
465
- includeResourceContents: true, // Fetch actual resource data
466
- includePromptDetails: true, // Fetch prompt templates
467
- includeTokenCounts: true // Calculate token usage (default)
468
- }
469
- );
470
-
471
- // Access detailed tool parameters
472
- result.capabilities?.tools.forEach(tool => {
473
- console.log(`\nTool: ${tool.name}`);
474
-
475
- if (tool.inputSchema?.properties) {
476
- Object.entries(tool.inputSchema.properties).forEach(([name, schema]) => {
477
- console.log(` - ${name}: ${schema.type} ${schema.description || ''}`);
478
- });
479
- }
480
- });
481
- ```
482
-
483
434
  ### Submodule Imports
484
435
 
485
436
  For better tree-shaking, import from specific submodules:
486
437
 
487
438
  ```typescript
488
- // Import specific modules
489
439
  import { MCPVerifier } from 'agentinit/verifier';
490
440
  import { MCPServerType } from 'agentinit/types';
491
441
  import type {
@@ -496,217 +446,9 @@ import type {
496
446
  import { countTokens, MCPParser } from 'agentinit/utils';
497
447
  ```
498
448
 
499
- ### Examples
500
-
501
- #### Verify STDIO MCP Server
502
-
503
- ```typescript
504
- import { MCPVerifier, MCPServerType } from 'agentinit';
505
-
506
- const verifier = new MCPVerifier(10000); // 10 second timeout
507
-
508
- const result = await verifier.verifyServer({
509
- name: 'filesystem',
510
- type: MCPServerType.STDIO,
511
- command: 'npx',
512
- args: ['-y', '@modelcontextprotocol/server-filesystem', '/workspace'],
513
- env: {
514
- NODE_ENV: 'production'
515
- }
516
- });
517
-
518
- if (result.status === 'success') {
519
- result.capabilities?.tools.forEach(tool => {
520
- const tokens = result.capabilities?.toolTokenCounts?.get(tool.name) || 0;
521
- console.log(` • ${tool.name} (${tokens} tokens)`);
522
- });
523
- }
524
- ```
525
-
526
- #### Verify HTTP MCP Server
527
-
528
- ```typescript
529
- import { MCPVerifier, MCPServerType } from 'agentinit';
530
-
531
- const result = await verifier.verifyServer({
532
- name: 'github-api',
533
- type: MCPServerType.HTTP,
534
- url: 'https://api.example.com/mcp',
535
- headers: {
536
- 'Authorization': 'Bearer YOUR_TOKEN',
537
- 'Content-Type': 'application/json'
538
- }
539
- });
540
- ```
541
-
542
- #### Verify Multiple Servers
543
-
544
- ```typescript
545
- import { MCPVerifier, MCPServerType } from 'agentinit/verifier';
546
-
547
- const servers = [
548
- {
549
- name: 'everything',
550
- type: MCPServerType.STDIO,
551
- command: 'npx',
552
- args: ['-y', '@modelcontextprotocol/server-everything']
553
- },
554
- {
555
- name: 'api-server',
556
- type: MCPServerType.HTTP,
557
- url: 'https://api.example.com/mcp'
558
- }
559
- ];
560
-
561
- const verifier = new MCPVerifier();
562
- const results = await verifier.verifyServers(servers);
563
-
564
- // Display formatted results
565
- console.log(verifier.formatResults(results));
566
-
567
- // Or process results programmatically
568
- const successful = results.filter(r => r.status === 'success').length;
569
- console.log(`${successful}/${results.length} servers verified`);
570
-
571
- // Inspect tool parameters and token usage
572
- results.forEach(result => {
573
- if (result.status === 'success' && result.capabilities) {
574
- console.log(`\n${result.server.name}:`);
575
- result.capabilities.tools.forEach(tool => {
576
- const tokens = result.capabilities?.toolTokenCounts?.get(tool.name) || 0;
577
- console.log(` • ${tool.name} (${tokens} tokens)`);
578
- });
579
- }
580
- });
581
- ```
582
-
583
- #### Count Tokens
584
-
585
- ```typescript
586
- import { countTokens } from 'agentinit/utils';
587
-
588
- const text = 'Hello, world!';
589
- const tokens = countTokens(text);
590
- console.log(`Token count: ${tokens}`);
591
- ```
592
-
593
- #### Parse MCP Configuration
594
-
595
- ```typescript
596
- import { MCPParser } from 'agentinit/utils';
597
-
598
- const args = ['--mcp-stdio', 'test', 'node', 'server.js', '--args', 'arg1 arg2'];
599
- const parsed = MCPParser.parseArguments(args);
600
-
601
- console.log(parsed.servers); // Array of MCPServerConfig
602
- ```
603
-
604
- ### API Reference
605
-
606
- #### MCPVerifier
607
-
608
- **Constructor**
609
- ```typescript
610
- new MCPVerifier(defaultTimeout?: number)
611
- ```
612
-
613
- **Methods**
614
- - `verifyServer(config: MCPServerConfig, options?: MCPVerificationOptions): Promise<MCPVerificationResult>` - Verify a single MCP server
615
- - `verifyServers(configs: MCPServerConfig[], options?: MCPVerificationOptions): Promise<MCPVerificationResult[]>` - Verify multiple servers in parallel
616
- - `formatResults(results: MCPVerificationResult[]): string` - Format verification results for display
617
-
618
- **MCPVerificationOptions**
619
- ```typescript
620
- interface MCPVerificationOptions {
621
- timeout?: number; // Connection timeout (ms)
622
- includeResourceContents?: boolean; // Fetch resource data
623
- includePromptDetails?: boolean; // Fetch prompt templates
624
- includeTokenCounts?: boolean; // Calculate tokens (default: true)
625
- }
626
- ```
627
-
628
- #### Types
629
-
630
- **MCPServerType**
631
- ```typescript
632
- enum MCPServerType {
633
- STDIO = 'stdio',
634
- HTTP = 'http',
635
- SSE = 'sse'
636
- }
637
- ```
638
-
639
- **MCPServerConfig**
640
- ```typescript
641
- interface MCPServerConfig {
642
- name: string;
643
- type: MCPServerType;
644
-
645
- // For STDIO servers
646
- command?: string;
647
- args?: string[];
648
- env?: Record<string, string>;
649
-
650
- // For HTTP/SSE servers
651
- url?: string;
652
- headers?: Record<string, string>;
653
- }
654
- ```
655
-
656
- **MCPVerificationResult**
657
- ```typescript
658
- interface MCPVerificationResult {
659
- server: MCPServerConfig;
660
- status: 'success' | 'error' | 'timeout';
661
- capabilities?: MCPCapabilities;
662
- error?: string;
663
- connectionTime?: number;
664
- }
665
- ```
449
+ > **Note:** For detailed examples, type definitions, and advanced usage patterns, see the [full library documentation](src/lib/verifier/README.md).
666
450
 
667
- **MCPCapabilities**
668
- ```typescript
669
- interface MCPCapabilities {
670
- tools: MCPTool[]; // Available tools with input schemas
671
- resources: MCPResource[]; // Available resources (with optional contents)
672
- prompts: MCPPrompt[]; // Available prompts (with optional templates)
673
- serverInfo?: {
674
- name: string;
675
- version: string;
676
- };
677
- totalToolTokens?: number; // Total token usage for all tools
678
- toolTokenCounts?: Map<string, number>; // Token count per tool
679
- }
680
-
681
- interface MCPTool {
682
- name: string;
683
- description?: string;
684
- inputSchema?: any; // JSON Schema defining parameters
685
- }
686
-
687
- interface MCPResource {
688
- uri: string;
689
- name?: string;
690
- description?: string;
691
- mimeType?: string;
692
- contents?: string | Uint8Array; // Only if includeResourceContents is true
693
- }
694
-
695
- interface MCPPrompt {
696
- name: string;
697
- description?: string;
698
- arguments?: Array<{
699
- name: string;
700
- description?: string;
701
- required?: boolean;
702
- }>;
703
- template?: string; // Only if includePromptDetails is true
704
- }
705
- ```
706
-
707
- > **📝 Note:** For detailed examples on working with tool parameters, resource contents, and prompt templates, see the [full library documentation](src/lib/verifier/README.md).
708
-
709
- ## 🛠️ Development
451
+ ## Development
710
452
 
711
453
  ### Building from Source
712
454
 
@@ -744,20 +486,16 @@ src/
744
486
  └── types/ # TypeScript definitions
745
487
  ```
746
488
 
747
- ## 🤝 Contributing
489
+ ## Contributing
748
490
 
749
491
  We welcome contributions! Please see our [contributing guidelines](CONTRIBUTING.md) for details.
750
492
 
751
- ## 📄 License
493
+ ## License
752
494
 
753
495
  MIT License - see [LICENSE](LICENSE) file for details.
754
496
 
755
- ## 🔗 Links
497
+ ## Links
756
498
 
757
499
  - [Documentation](https://docs.agentinit.dev)
758
500
  - [MCP Registry](https://registry.agentinit.dev)
759
501
  - [GitHub Issues](https://github.com/agentinit/agentinit/issues)
760
-
761
- ---
762
-
763
- **AgentInit** - Unify your AI agent configurations, amplify your development workflow.