@vitld/meld-cli 0.1.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/LICENSE +674 -0
- package/README.md +179 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1423 -0
- package/dist/index.js.map +1 -0
- package/meld.schema.json +97 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
```
|
|
2
|
+
███╗ ███╗ ███████╗ ██╗ ██████╗
|
|
3
|
+
████╗ ████║ ██╔════╝ ██║ ██╔══██╗
|
|
4
|
+
██╔████╔██║ █████╗ ██║ ██║ ██║
|
|
5
|
+
██║╚██╔╝██║ ██╔══╝ ██║ ██║ ██║
|
|
6
|
+
██║ ╚═╝ ██║ ███████╗ ███████╗ ██████╔╝
|
|
7
|
+
╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═════╝
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/@vitld/meld-cli)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
[](https://github.com/vitld/meld-cli/actions/workflows/ci.yml)
|
|
13
|
+
|
|
14
|
+
Agent-agnostic settings generator for AI coding agents.
|
|
15
|
+
|
|
16
|
+
## The spirit of the project
|
|
17
|
+
|
|
18
|
+
Think of meld as IoC but for agentic workflows and setups. Let's call it AIaC?
|
|
19
|
+
The goal is to mirror your preferred settings across multiple agent CLIs in a small and lightweight tool centralized to a single entry-point or workspace.
|
|
20
|
+
Setup your context, your MCPs (and other settings) and your projects once.
|
|
21
|
+
|
|
22
|
+
And yes, it's 100% vibe coded. If you find issues, please report!
|
|
23
|
+
|
|
24
|
+
## Contribution & Issues
|
|
25
|
+
Contributions are welcome! But try to keep it within the spirit of the project. Avoid leaning into the "agent runner and orchestration" space unless it can be done cleanly and without massive overhaul. Other than that, open for suggestions and ideas!
|
|
26
|
+
|
|
27
|
+
Some known limitations:
|
|
28
|
+
* Windows support (no clue if it works, haven't tested, probably not?)
|
|
29
|
+
|
|
30
|
+
## What it does
|
|
31
|
+
|
|
32
|
+
Meld creates a **hub** — a shared workspace that sits above your projects and generates per-agent configuration files. Define your projects, MCP servers, and instructions once in `meld.jsonc`, then run `meld gen` to produce native config files for each agent.
|
|
33
|
+
|
|
34
|
+
Supported agents:
|
|
35
|
+
|
|
36
|
+
| Agent | Generates |
|
|
37
|
+
|-------|-----------|
|
|
38
|
+
| Claude Code | `CLAUDE.md`, `.mcp.json` |
|
|
39
|
+
| Codex CLI | `AGENTS.md`, `.codex/config.toml` |
|
|
40
|
+
| Gemini CLI | `GEMINI.md`, `.gemini/settings.json` |
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install -g @vitld/meld-cli
|
|
46
|
+
# or
|
|
47
|
+
pnpm add -g @vitld/meld-cli
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The package installs as `@vitld/meld-cli` but the command is `meld`.
|
|
51
|
+
|
|
52
|
+
## Quick start
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
mkdir my-hub && cd my-hub
|
|
56
|
+
meld init
|
|
57
|
+
meld project add
|
|
58
|
+
meld gen
|
|
59
|
+
meld claude-code # or: meld codex-cli, meld gemini-cli
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Hub structure
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
my-hub/
|
|
66
|
+
meld.jsonc # Central configuration
|
|
67
|
+
context/ # Markdown instructions for agents
|
|
68
|
+
commands/ # Slash commands
|
|
69
|
+
skills/ # Reusable agent skills
|
|
70
|
+
artifacts/ # Research, plans, and notes
|
|
71
|
+
scratch/ # Temporary work (gitignored)
|
|
72
|
+
agents/ # Generated output (gitignored)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Configuration
|
|
76
|
+
|
|
77
|
+
All configuration lives in `meld.jsonc` at the hub root:
|
|
78
|
+
|
|
79
|
+
```jsonc
|
|
80
|
+
{
|
|
81
|
+
"$schema": "./meld.schema.json",
|
|
82
|
+
"ide": {
|
|
83
|
+
"workspaceName": "my-hub"
|
|
84
|
+
},
|
|
85
|
+
"agents": {
|
|
86
|
+
"claude-code": { "enabled": true },
|
|
87
|
+
"codex-cli": { "enabled": false },
|
|
88
|
+
"gemini-cli": { "enabled": false }
|
|
89
|
+
},
|
|
90
|
+
"projects": {
|
|
91
|
+
"my-app": {
|
|
92
|
+
"path": "/absolute/path/to/my-app",
|
|
93
|
+
"aliases": ["app"],
|
|
94
|
+
"repo": "org/my-app"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"mcp": {
|
|
98
|
+
// MCP servers — see below
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Commands
|
|
104
|
+
|
|
105
|
+
| Command | Description |
|
|
106
|
+
|---------|-------------|
|
|
107
|
+
| `meld init` | Initialize a new hub |
|
|
108
|
+
| `meld gen` | Generate agent configs from `meld.jsonc` |
|
|
109
|
+
| `meld gen --dry-run` | Preview without writing files |
|
|
110
|
+
| `meld project add` | Register a project |
|
|
111
|
+
| `meld project list` | List registered projects |
|
|
112
|
+
| `meld open` | Open workspace in IDE |
|
|
113
|
+
| `meld update` | Re-scaffold hub structure |
|
|
114
|
+
| `meld claude-code` | Launch Claude Code in the agent directory |
|
|
115
|
+
| `meld codex-cli` | Launch Codex CLI in the agent directory |
|
|
116
|
+
| `meld gemini-cli` | Launch Gemini CLI in the agent directory |
|
|
117
|
+
|
|
118
|
+
## MCP servers
|
|
119
|
+
|
|
120
|
+
MCP servers are defined once in `meld.jsonc` under the `mcp` key and automatically translated into each agent's native config format.
|
|
121
|
+
|
|
122
|
+
### Stdio server
|
|
123
|
+
|
|
124
|
+
```jsonc
|
|
125
|
+
"my-server": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "my-mcp-server@latest"],
|
|
128
|
+
"env": {
|
|
129
|
+
"API_KEY": "sk-..."
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### HTTP server
|
|
135
|
+
|
|
136
|
+
```jsonc
|
|
137
|
+
"my-server": {
|
|
138
|
+
"type": "http",
|
|
139
|
+
"url": "https://mcp.example.com/mcp",
|
|
140
|
+
"headers": {
|
|
141
|
+
"Authorization": "Bearer tok-..."
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Scoping servers to agents
|
|
147
|
+
|
|
148
|
+
By default every MCP server is available to all enabled agents. Use `agents` to restrict:
|
|
149
|
+
|
|
150
|
+
```jsonc
|
|
151
|
+
"my-server": {
|
|
152
|
+
"command": "node",
|
|
153
|
+
"args": ["server.js"],
|
|
154
|
+
"agents": ["claude-code"]
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Context & instructions
|
|
159
|
+
|
|
160
|
+
Files in the root of `context/` are inlined into agent instruction files (`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`). Subfolders are copied into each agent's working directory so you can reference them with relative paths.
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
context/
|
|
164
|
+
01-role.md # Inlined (alphabetical order)
|
|
165
|
+
02-guardrails.md # Inlined
|
|
166
|
+
reference/ # Copied as agents/<name>/reference/
|
|
167
|
+
api.md
|
|
168
|
+
patterns.md
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Use numeric prefixes to control ordering. Run `meld gen` after editing.
|
|
172
|
+
|
|
173
|
+
## Requirements
|
|
174
|
+
|
|
175
|
+
Node.js >= 20
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
[GPL-3.0-only](LICENSE)
|
package/dist/index.d.ts
ADDED