@claudetools/cli 0.9.2

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.
Files changed (45) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +106 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/onboard/agents-md-builder.d.ts +14 -0
  6. package/dist/onboard/agents-md-builder.d.ts.map +1 -0
  7. package/dist/onboard/agents-md-builder.js +378 -0
  8. package/dist/onboard/agents-md-builder.js.map +1 -0
  9. package/dist/onboard/context7-fetcher.d.ts +27 -0
  10. package/dist/onboard/context7-fetcher.d.ts.map +1 -0
  11. package/dist/onboard/context7-fetcher.js +116 -0
  12. package/dist/onboard/context7-fetcher.js.map +1 -0
  13. package/dist/onboard/docs-generator.d.ts +8 -0
  14. package/dist/onboard/docs-generator.d.ts.map +1 -0
  15. package/dist/onboard/docs-generator.js +250 -0
  16. package/dist/onboard/docs-generator.js.map +1 -0
  17. package/dist/onboard/index.d.ts +11 -0
  18. package/dist/onboard/index.d.ts.map +1 -0
  19. package/dist/onboard/index.js +128 -0
  20. package/dist/onboard/index.js.map +1 -0
  21. package/dist/onboard/stack-detector.d.ts +4 -0
  22. package/dist/onboard/stack-detector.d.ts.map +1 -0
  23. package/dist/onboard/stack-detector.js +324 -0
  24. package/dist/onboard/stack-detector.js.map +1 -0
  25. package/dist/onboard/types.d.ts +80 -0
  26. package/dist/onboard/types.d.ts.map +1 -0
  27. package/dist/onboard/types.js +5 -0
  28. package/dist/onboard/types.js.map +1 -0
  29. package/dist/onboard/web-research.d.ts +11 -0
  30. package/dist/onboard/web-research.d.ts.map +1 -0
  31. package/dist/onboard/web-research.js +209 -0
  32. package/dist/onboard/web-research.js.map +1 -0
  33. package/dist/setup.d.ts +3 -0
  34. package/dist/setup.d.ts.map +1 -0
  35. package/dist/setup.js +190 -0
  36. package/dist/setup.js.map +1 -0
  37. package/dist/templates/agents-md.d.ts +10 -0
  38. package/dist/templates/agents-md.d.ts.map +1 -0
  39. package/dist/templates/agents-md.js +125 -0
  40. package/dist/templates/agents-md.js.map +1 -0
  41. package/dist/templates/claude-md.d.ts +12 -0
  42. package/dist/templates/claude-md.d.ts.map +1 -0
  43. package/dist/templates/claude-md.js +62 -0
  44. package/dist/templates/claude-md.js.map +1 -0
  45. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-research.js","sourceRoot":"","sources":["../../src/onboard/web-research.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function runInit(): Promise<void>;
2
+ export declare function runCleanup(): Promise<void>;
3
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA8CA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC7C;AAsBD,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAmIhD"}
package/dist/setup.js ADDED
@@ -0,0 +1,190 @@
1
+ // =============================================================================
2
+ // ClaudeTools Setup Functions
3
+ // =============================================================================
4
+ // Simplified setup for documentation-driven workflow (no memory API)
5
+ import chalk from 'chalk';
6
+ import { homedir } from 'os';
7
+ import { join, basename } from 'path';
8
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'fs';
9
+ import { getProjectTemplate, SECTION_START, SECTION_END } from './templates/claude-md.js';
10
+ // -----------------------------------------------------------------------------
11
+ // Constants
12
+ // -----------------------------------------------------------------------------
13
+ const CLAUDE_DIR = join(homedir(), '.claude');
14
+ const CLAUDE_MD_PATH = join(CLAUDE_DIR, 'CLAUDE.md');
15
+ // -----------------------------------------------------------------------------
16
+ // Utility Functions
17
+ // -----------------------------------------------------------------------------
18
+ function header(title) {
19
+ console.log('\n' + chalk.cyan('━'.repeat(50)));
20
+ console.log(chalk.cyan.bold(title));
21
+ console.log(chalk.cyan('━'.repeat(50)) + '\n');
22
+ }
23
+ function success(msg) {
24
+ console.log(chalk.green('✓ ') + msg);
25
+ }
26
+ function error(msg) {
27
+ console.log(chalk.red('✗ ') + msg);
28
+ }
29
+ function info(msg) {
30
+ console.log(chalk.blue('ℹ ') + msg);
31
+ }
32
+ // -----------------------------------------------------------------------------
33
+ // Init Command
34
+ // -----------------------------------------------------------------------------
35
+ export async function runInit() {
36
+ console.log('\n' + chalk.bold.cyan(' ClaudeTools Setup') + '\n');
37
+ console.log(' ' + chalk.dim('AI agent project setup for Claude Code') + '\n');
38
+ const cwd = process.cwd();
39
+ const projectName = basename(cwd);
40
+ const projectClaudeDir = join(cwd, '.claude');
41
+ const projectClaudeMd = join(projectClaudeDir, 'CLAUDE.md');
42
+ // Create .claude directory if needed
43
+ if (!existsSync(projectClaudeDir)) {
44
+ mkdirSync(projectClaudeDir, { recursive: true });
45
+ success('Created .claude/ directory');
46
+ }
47
+ // Create or update CLAUDE.md
48
+ let existingContent = '';
49
+ if (existsSync(projectClaudeMd)) {
50
+ existingContent = readFileSync(projectClaudeMd, 'utf-8');
51
+ // Check if it's a minimal pointer (short file)
52
+ if (existingContent.length > 500 && !existingContent.includes('See [AGENTS.md]')) {
53
+ info('Existing CLAUDE.md has custom content - preserving');
54
+ }
55
+ }
56
+ // Write minimal CLAUDE.md pointer
57
+ const projectContent = getProjectTemplate(projectName);
58
+ writeFileSync(projectClaudeMd, projectContent);
59
+ success('Created .claude/CLAUDE.md');
60
+ // Done!
61
+ header('Setup Complete');
62
+ console.log(chalk.green(' Project initialized!\n'));
63
+ console.log(' ' + chalk.bold('Project:') + ` ${projectName}`);
64
+ console.log(' ' + chalk.bold('Config:') + ` ${projectClaudeMd}\n`);
65
+ console.log(' ' + chalk.bold('Next step:') + ' Run `claudetools onboard` to generate AGENTS.md\n');
66
+ }
67
+ export async function runCleanup() {
68
+ console.log('\n' + chalk.bold.cyan(' ClaudeTools Legacy Cleanup') + '\n');
69
+ header('Cleaning Legacy Configurations');
70
+ let cleaned = false;
71
+ // Clean up legacy MCP configs
72
+ const mcpConfigPath = join(CLAUDE_DIR, 'mcp.json');
73
+ if (existsSync(mcpConfigPath)) {
74
+ try {
75
+ const config = JSON.parse(readFileSync(mcpConfigPath, 'utf-8'));
76
+ if (config.mcpServers?.claudetools_memory) {
77
+ delete config.mcpServers.claudetools_memory;
78
+ writeFileSync(mcpConfigPath, JSON.stringify(config, null, 2));
79
+ success('Removed claudetools_memory from mcp.json');
80
+ cleaned = true;
81
+ }
82
+ }
83
+ catch {
84
+ // Skip
85
+ }
86
+ }
87
+ // Clean up legacy hooks from settings.json
88
+ const settingsPath = join(CLAUDE_DIR, 'settings.json');
89
+ if (existsSync(settingsPath)) {
90
+ try {
91
+ const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
92
+ let modified = false;
93
+ if (settings.hooks) {
94
+ for (const hookType of Object.keys(settings.hooks)) {
95
+ const hooks = settings.hooks[hookType];
96
+ if (Array.isArray(hooks)) {
97
+ const filtered = hooks.filter((h) => {
98
+ if (h.hooks) {
99
+ return !h.hooks.some((hk) => {
100
+ if (!hk.command)
101
+ return false;
102
+ // Remove legacy claudetools hooks
103
+ return (hk.command.includes('claudetools') ||
104
+ hk.command.includes('memory-capture') ||
105
+ hk.command.includes('session-start.sh') ||
106
+ hk.command.includes('post-tool-use.sh') ||
107
+ hk.command.includes('pre-compact.sh'));
108
+ });
109
+ }
110
+ return true;
111
+ });
112
+ if (filtered.length !== hooks.length) {
113
+ settings.hooks[hookType] = filtered;
114
+ modified = true;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ if (modified) {
120
+ writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
121
+ success('Cleaned up legacy hooks from settings.json');
122
+ cleaned = true;
123
+ }
124
+ }
125
+ catch {
126
+ // Skip
127
+ }
128
+ }
129
+ // Clean up hook files
130
+ const hooksDir = join(CLAUDE_DIR, 'hooks');
131
+ if (existsSync(hooksDir)) {
132
+ const legacyHooks = ['session-start.sh', 'post-tool-use.sh', 'pre-compact.sh', 'stop.sh'];
133
+ for (const hookFile of legacyHooks) {
134
+ const hookPath = join(hooksDir, hookFile);
135
+ if (existsSync(hookPath)) {
136
+ try {
137
+ const content = readFileSync(hookPath, 'utf-8');
138
+ if (content.includes('ClaudeTools') || content.includes('claudetools')) {
139
+ unlinkSync(hookPath);
140
+ success(`Removed ${hookFile}`);
141
+ cleaned = true;
142
+ }
143
+ }
144
+ catch {
145
+ // Skip
146
+ }
147
+ }
148
+ }
149
+ }
150
+ // Clean up claudetools section from global CLAUDE.md
151
+ if (existsSync(CLAUDE_MD_PATH)) {
152
+ try {
153
+ let content = readFileSync(CLAUDE_MD_PATH, 'utf-8');
154
+ if (content.includes(SECTION_START)) {
155
+ const startIdx = content.indexOf(SECTION_START);
156
+ const endIdx = content.indexOf(SECTION_END);
157
+ if (startIdx !== -1 && endIdx !== -1) {
158
+ content =
159
+ content.slice(0, startIdx).trimEnd() +
160
+ '\n' +
161
+ content.slice(endIdx + SECTION_END.length).trimStart();
162
+ if (content.trim() === '') {
163
+ unlinkSync(CLAUDE_MD_PATH);
164
+ success('Removed empty CLAUDE.md');
165
+ }
166
+ else {
167
+ writeFileSync(CLAUDE_MD_PATH, content.trim() + '\n');
168
+ success('Removed ClaudeTools section from CLAUDE.md');
169
+ }
170
+ cleaned = true;
171
+ }
172
+ }
173
+ }
174
+ catch {
175
+ // Skip
176
+ }
177
+ }
178
+ // Clean up ~/.claudetools/ directory
179
+ const claudetoolsDir = join(homedir(), '.claudetools');
180
+ if (existsSync(claudetoolsDir)) {
181
+ info(`Legacy config directory exists: ${claudetoolsDir}`);
182
+ info('You can remove it manually if no longer needed');
183
+ }
184
+ if (!cleaned) {
185
+ info('No legacy configuration found');
186
+ }
187
+ console.log('\n' + chalk.green(' Cleanup complete!'));
188
+ console.log(chalk.dim(' Restart Claude Code for changes to take effect.\n'));
189
+ }
190
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * AGENTS.md template structure
3
+ * This is used as a reference - actual generation is done by agents-md-builder.ts
4
+ */
5
+ export declare const AGENTS_MD_TEMPLATE = "# AGENTS.md - {ProjectName}\n\n> Comprehensive context for AI agents. Generated: {timestamp}\n\n## Project Overview\n\n**Path:** `{projectPath}`\n**Stack:** {stackSummary}\n\n## Directory Structure\n\n```\n{directoryTree}\n```\n\n## Technology Stack\n\n### Frameworks\n{frameworksList}\n\n### Libraries\n{librariesList}\n\n### Dev Tools\n{devToolsList}\n\n## Documentation\n\n{documentationLinks}\n\n## Entry Points\n\n{entryPointsList}\n\n## Conventions\n\n{conventionsList}\n\n---\n\n*Refresh: `claudetools onboard --refresh`*\n";
6
+ /**
7
+ * Example of a fully rendered AGENTS.md
8
+ */
9
+ export declare const AGENTS_MD_EXAMPLE = "# AGENTS.md - my-nextjs-app\n\n> Comprehensive context for AI agents. Generated: 2026-01-26T00:00:00.000Z\n\n## Project Overview\n\n**Path:** `/Users/dev/projects/my-nextjs-app`\n**Stack:** TypeScript + Next.js 15.0.0 + React 19.0.0\n\n## Directory Structure\n\n```\nsrc/\n\u251C\u2500\u2500 app/\n\u2502 \u251C\u2500\u2500 layout.tsx\n\u2502 \u251C\u2500\u2500 page.tsx\n\u2502 \u2514\u2500\u2500 api/\n\u2502 \u2514\u2500\u2500 route.ts\n\u251C\u2500\u2500 components/\n\u2502 \u251C\u2500\u2500 ui/\n\u2502 \u2514\u2500\u2500 forms/\n\u251C\u2500\u2500 lib/\n\u2502 \u251C\u2500\u2500 db.ts\n\u2502 \u2514\u2500\u2500 utils.ts\n\u2514\u2500\u2500 types/\n \u2514\u2500\u2500 index.ts\n```\n\n## Technology Stack\n\n### Frameworks\n- **next** (15.0.0) - fullstack\n- **react** (19.0.0) - frontend\n\n### Libraries\n**database:**\n- drizzle-orm (0.30.0)\n\n**validation:**\n- zod (3.22.0)\n\n**data-fetching:**\n- @tanstack/react-query (5.0.0)\n\n### Dev Tools\n- vitest (testing)\n- eslint (linting)\n\n## Documentation\n\n- [`docs/frameworks/next.md`](docs/frameworks/next.md) - Next.js\n- [`docs/libraries/drizzle-orm.md`](docs/libraries/drizzle-orm.md) - Drizzle ORM\n- [`docs/libraries/zod.md`](docs/libraries/zod.md) - Zod\n\n## Entry Points\n\n- `src/app/layout.tsx` - Root layout component\n- `src/app/page.tsx` - Home page component\n- `src/app/api/route.ts` - API route handler\n\n## Conventions\n\n- **File Naming:** kebab-case - Files use kebab-case naming (e.g., user-service.ts)\n- **Imports:** @/* - Use path alias for imports instead of relative paths\n- **Routing:** App Router - Uses Next.js App Router with file-based routing in app/\n- **Components:** Functional - Use functional components with hooks\n\n---\n\n*Refresh: `claudetools onboard --refresh`*\n";
10
+ //# sourceMappingURL=agents-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/templates/agents-md.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,uhBAyC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,6wDAsE7B,CAAC"}
@@ -0,0 +1,125 @@
1
+ // =============================================================================
2
+ // AGENTS.md Template
3
+ // =============================================================================
4
+ // Template for generating comprehensive AI agent context
5
+ /**
6
+ * AGENTS.md template structure
7
+ * This is used as a reference - actual generation is done by agents-md-builder.ts
8
+ */
9
+ export const AGENTS_MD_TEMPLATE = `# AGENTS.md - {ProjectName}
10
+
11
+ > Comprehensive context for AI agents. Generated: {timestamp}
12
+
13
+ ## Project Overview
14
+
15
+ **Path:** \`{projectPath}\`
16
+ **Stack:** {stackSummary}
17
+
18
+ ## Directory Structure
19
+
20
+ \`\`\`
21
+ {directoryTree}
22
+ \`\`\`
23
+
24
+ ## Technology Stack
25
+
26
+ ### Frameworks
27
+ {frameworksList}
28
+
29
+ ### Libraries
30
+ {librariesList}
31
+
32
+ ### Dev Tools
33
+ {devToolsList}
34
+
35
+ ## Documentation
36
+
37
+ {documentationLinks}
38
+
39
+ ## Entry Points
40
+
41
+ {entryPointsList}
42
+
43
+ ## Conventions
44
+
45
+ {conventionsList}
46
+
47
+ ---
48
+
49
+ *Refresh: \`claudetools onboard --refresh\`*
50
+ `;
51
+ /**
52
+ * Example of a fully rendered AGENTS.md
53
+ */
54
+ export const AGENTS_MD_EXAMPLE = `# AGENTS.md - my-nextjs-app
55
+
56
+ > Comprehensive context for AI agents. Generated: 2026-01-26T00:00:00.000Z
57
+
58
+ ## Project Overview
59
+
60
+ **Path:** \`/Users/dev/projects/my-nextjs-app\`
61
+ **Stack:** TypeScript + Next.js 15.0.0 + React 19.0.0
62
+
63
+ ## Directory Structure
64
+
65
+ \`\`\`
66
+ src/
67
+ ├── app/
68
+ │ ├── layout.tsx
69
+ │ ├── page.tsx
70
+ │ └── api/
71
+ │ └── route.ts
72
+ ├── components/
73
+ │ ├── ui/
74
+ │ └── forms/
75
+ ├── lib/
76
+ │ ├── db.ts
77
+ │ └── utils.ts
78
+ └── types/
79
+ └── index.ts
80
+ \`\`\`
81
+
82
+ ## Technology Stack
83
+
84
+ ### Frameworks
85
+ - **next** (15.0.0) - fullstack
86
+ - **react** (19.0.0) - frontend
87
+
88
+ ### Libraries
89
+ **database:**
90
+ - drizzle-orm (0.30.0)
91
+
92
+ **validation:**
93
+ - zod (3.22.0)
94
+
95
+ **data-fetching:**
96
+ - @tanstack/react-query (5.0.0)
97
+
98
+ ### Dev Tools
99
+ - vitest (testing)
100
+ - eslint (linting)
101
+
102
+ ## Documentation
103
+
104
+ - [\`docs/frameworks/next.md\`](docs/frameworks/next.md) - Next.js
105
+ - [\`docs/libraries/drizzle-orm.md\`](docs/libraries/drizzle-orm.md) - Drizzle ORM
106
+ - [\`docs/libraries/zod.md\`](docs/libraries/zod.md) - Zod
107
+
108
+ ## Entry Points
109
+
110
+ - \`src/app/layout.tsx\` - Root layout component
111
+ - \`src/app/page.tsx\` - Home page component
112
+ - \`src/app/api/route.ts\` - API route handler
113
+
114
+ ## Conventions
115
+
116
+ - **File Naming:** kebab-case - Files use kebab-case naming (e.g., user-service.ts)
117
+ - **Imports:** @/* - Use path alias for imports instead of relative paths
118
+ - **Routing:** App Router - Uses Next.js App Router with file-based routing in app/
119
+ - **Components:** Functional - Use functional components with hooks
120
+
121
+ ---
122
+
123
+ *Refresh: \`claudetools onboard --refresh\`*
124
+ `;
125
+ //# sourceMappingURL=agents-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/templates/agents-md.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAChF,yDAAyD;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEhC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Project-level CLAUDE.md - minimal pointer to AGENTS.md
3
+ */
4
+ export declare function getProjectTemplate(projectName: string): string;
5
+ /**
6
+ * Global CLAUDE.md content - added to ~/.claude/CLAUDE.md
7
+ * This is minimal since memory API is sunset
8
+ */
9
+ export declare const GLOBAL_TEMPLATE = "\n# ClaudeTools\n\nDocumentation-driven AI context for Claude Code.\n\n## Project Setup\n\nRun in any project directory:\n\n```bash\nclaudetools init # Initialize project\nclaudetools onboard # Generate documentation and AGENTS.md\n```\n\n## Generated Files\n\n- **AGENTS.md** - Comprehensive project context for AI agents\n- **docs/** - Stack documentation (gitignored, regenerable)\n- **.claude/CLAUDE.md** - Minimal pointer to AGENTS.md\n\n## Refresh Documentation\n\n```bash\nclaudetools onboard --refresh\n```\n\nRe-fetches documentation from Context7 and regenerates AGENTS.md.\n\n---\n\n*[ClaudeTools](https://github.com/claudetools/claudetools) - AI agent project setup*\n";
10
+ export declare const SECTION_START = "<!-- CLAUDETOOLS:START -->";
11
+ export declare const SECTION_END = "<!-- CLAUDETOOLS:END -->";
12
+ //# sourceMappingURL=claude-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,orBA+B3B,CAAC;AAGF,eAAO,MAAM,aAAa,+BAA+B,CAAC;AAC1D,eAAO,MAAM,WAAW,6BAA6B,CAAC"}
@@ -0,0 +1,62 @@
1
+ // =============================================================================
2
+ // CLAUDE.md Template Content
3
+ // =============================================================================
4
+ // Minimal templates that point to AGENTS.md
5
+ /**
6
+ * Project-level CLAUDE.md - minimal pointer to AGENTS.md
7
+ */
8
+ export function getProjectTemplate(projectName) {
9
+ return `# ${projectName}
10
+
11
+ See [AGENTS.md](../AGENTS.md) for comprehensive project context.
12
+
13
+ ## Quick Links
14
+
15
+ - Project docs: \`docs/\`
16
+ - Agent context: \`AGENTS.md\`
17
+
18
+ ---
19
+
20
+ *Generated by ClaudeTools. Refresh: \`claudetools onboard --refresh\`*
21
+ `;
22
+ }
23
+ /**
24
+ * Global CLAUDE.md content - added to ~/.claude/CLAUDE.md
25
+ * This is minimal since memory API is sunset
26
+ */
27
+ export const GLOBAL_TEMPLATE = `
28
+ # ClaudeTools
29
+
30
+ Documentation-driven AI context for Claude Code.
31
+
32
+ ## Project Setup
33
+
34
+ Run in any project directory:
35
+
36
+ \`\`\`bash
37
+ claudetools init # Initialize project
38
+ claudetools onboard # Generate documentation and AGENTS.md
39
+ \`\`\`
40
+
41
+ ## Generated Files
42
+
43
+ - **AGENTS.md** - Comprehensive project context for AI agents
44
+ - **docs/** - Stack documentation (gitignored, regenerable)
45
+ - **.claude/CLAUDE.md** - Minimal pointer to AGENTS.md
46
+
47
+ ## Refresh Documentation
48
+
49
+ \`\`\`bash
50
+ claudetools onboard --refresh
51
+ \`\`\`
52
+
53
+ Re-fetches documentation from Context7 and regenerates AGENTS.md.
54
+
55
+ ---
56
+
57
+ *[ClaudeTools](https://github.com/claudetools/claudetools) - AI agent project setup*
58
+ `;
59
+ // Legacy section markers (for cleanup)
60
+ export const SECTION_START = '<!-- CLAUDETOOLS:START -->';
61
+ export const SECTION_END = '<!-- CLAUDETOOLS:END -->';
62
+ //# sourceMappingURL=claude-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAChF,4CAA4C;AAE5C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,KAAK,WAAW;;;;;;;;;;;;CAYxB,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@claudetools/cli",
3
+ "version": "0.9.2",
4
+ "description": "AI agent project setup and documentation tools for Claude Code",
5
+ "type": "module",
6
+ "main": "dist/cli.js",
7
+ "bin": {
8
+ "claudetools": "dist/cli.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsx src/cli.ts",
18
+ "test": "vitest run",
19
+ "test:watch": "vitest",
20
+ "typecheck": "tsc --noEmit",
21
+ "clean": "rm -rf dist",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "keywords": [
25
+ "claude",
26
+ "claude-code",
27
+ "ai",
28
+ "anthropic",
29
+ "cli",
30
+ "documentation",
31
+ "onboarding",
32
+ "context7"
33
+ ],
34
+ "author": "ClaudeTools <hello@claudetools.dev>",
35
+ "license": "MIT",
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "dependencies": {
43
+ "chalk": "^5.6.2",
44
+ "ora": "^9.0.0",
45
+ "prompts": "^2.4.2"
46
+ },
47
+ "devDependencies": {
48
+ "@types/node": "^20.10.0",
49
+ "@types/prompts": "^2.4.9",
50
+ "tsx": "^4.7.0",
51
+ "typescript": "^5.3.0",
52
+ "vitest": "^4.0.15"
53
+ }
54
+ }