nomoreide 0.1.49 → 0.1.51
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/README.md +35 -67
- package/dist/core/workflows.js +15 -10
- package/dist/core/workflows.js.map +1 -1
- package/dist/web/client/assets/{code-editor-_-MIc33z.js → code-editor-BnqU1qTM.js} +1 -1
- package/dist/web/client/assets/index-CK9Mzbyd.css +1 -0
- package/dist/web/client/assets/{index-BYrd1HFJ.js → index-CgvtH_73.js} +141 -141
- package/dist/web/client/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/client/assets/index-vGzOmeUL.css +0 -1
package/README.md
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
[](https://nodejs.org)
|
|
14
14
|
[](https://modelcontextprotocol.io)
|
|
15
15
|
|
|
16
|
-
Give your coding agents and yourself a **shared local control surface** for services, ports, logs, Git review, and MCP workflows — no IDE required.
|
|
16
|
+
Give your coding agents and yourself a **shared local control surface** for services, ports, logs, Git review, GitHub workflows, database work, and MCP workflows — no IDE required.
|
|
17
17
|
|
|
18
|
-
[
|
|
18
|
+
[MCP Setup](#connect-your-ai-agent) · [CLI Reference](#cli) · [MCP Tools](#mcp-tools) · [Architecture](#architecture)
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
@@ -23,7 +23,7 @@ Give your coding agents and yourself a **shared local control surface** for serv
|
|
|
23
23
|
|
|
24
24
|
## What Is NoMoreIDE?
|
|
25
25
|
|
|
26
|
-
NoMoreIDE is a lightweight process manager, Git reviewer, log aggregator, and MCP server — all in one `npx` command. It gives AI coding agents (Claude Code, Codex CLI, Gemini CLI, and others) a safe, structured window into your running dev environment through the **Model Context Protocol (MCP)**, while also providing a terminal UI and a local React web dashboard for humans.
|
|
26
|
+
NoMoreIDE is a lightweight process manager, Git reviewer, GitHub workflow surface, database workbench, log aggregator, and MCP server — all in one `npx` command. It gives AI coding agents (Claude Code, Codex CLI, Gemini CLI, and others) a safe, structured window into your running dev environment through the **Model Context Protocol (MCP)**, while also providing a terminal UI and a local React web dashboard for humans.
|
|
27
27
|
|
|
28
28
|
```
|
|
29
29
|
┌──────────────────────────────────────────────────────┐
|
|
@@ -154,69 +154,6 @@ If you prefer to point agents at a locally built binary instead of the published
|
|
|
154
154
|
|
|
155
155
|
---
|
|
156
156
|
|
|
157
|
-
## Quick Start
|
|
158
|
-
|
|
159
|
-
Add NoMoreIDE to your agent as a local MCP server:
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
claude mcp add --transport stdio nomoreide -- npx -y nomoreide
|
|
163
|
-
codex mcp add nomoreide -- npx -y nomoreide
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
For Gemini CLI, add this to `~/.gemini/settings.json`:
|
|
167
|
-
|
|
168
|
-
```json
|
|
169
|
-
{
|
|
170
|
-
"mcpServers": {
|
|
171
|
-
"nomoreide": {
|
|
172
|
-
"command": "npx",
|
|
173
|
-
"args": ["-y", "nomoreide"]
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Or print the setup commands from the package:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
npx -y nomoreide setup
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Or paste this prompt into your agent:
|
|
186
|
-
|
|
187
|
-
```text
|
|
188
|
-
Please set up NoMoreIDE as a local MCP server for this agent. Register a server named nomoreide that runs npx -y nomoreide. After adding it, tell me how to verify it with /mcp.
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Verify inside your agent:
|
|
192
|
-
|
|
193
|
-
```text
|
|
194
|
-
/mcp
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
Run the local MCP server directly:
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
npx -y nomoreide
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Install globally only if you want the `nomoreide` CLI on your PATH:
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
npm install -g nomoreide
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Build from source:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
git clone https://github.com/Rorogogogo/nomoreide.git
|
|
213
|
-
cd nomoreide
|
|
214
|
-
npm install
|
|
215
|
-
npm run build
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
157
|
## Architecture
|
|
221
158
|
|
|
222
159
|
```mermaid
|
|
@@ -270,6 +207,11 @@ graph TD
|
|
|
270
207
|
| Git status & diff | ✓ | | ✓ | ✓ |
|
|
271
208
|
| Stage / unstage / commit | ✓ | | ✓ | ✓ |
|
|
272
209
|
| Branch management | ✓ | | ✓ | ✓ |
|
|
210
|
+
| GitHub PRs / issues / Actions | | | ✓ | ✓ |
|
|
211
|
+
| Reusable git/GitHub workflows | | | ✓ | |
|
|
212
|
+
| Database browse and SQL query | | | ✓ | ✓ |
|
|
213
|
+
| Human-approved SQL writes | | | ✓ | |
|
|
214
|
+
| Agent tools, hooks, plugins, usage | | | ✓ | |
|
|
273
215
|
| Safe Git (no force-push, no reset) | ✓ | ✓ | ✓ | ✓ |
|
|
274
216
|
|
|
275
217
|
---
|
|
@@ -418,6 +360,29 @@ All tools are prefixed with `nomoreide_` and are available to any connected MCP
|
|
|
418
360
|
| `nomoreide_git_register_repository` | Register a repo path |
|
|
419
361
|
| `nomoreide_git_select_repository` | Select the active repo |
|
|
420
362
|
|
|
363
|
+
### Database Tools
|
|
364
|
+
|
|
365
|
+
| Tool | Description |
|
|
366
|
+
|---|---|
|
|
367
|
+
| `nomoreide_list_databases` | List registered database connections with masked URLs |
|
|
368
|
+
| `nomoreide_db_tables` | List tables and views for a connection |
|
|
369
|
+
| `nomoreide_db_sample` | Sample rows and schema metadata |
|
|
370
|
+
| `nomoreide_db_query` | Run read-only SQL queries; writes are rejected and staged for the Web UI SQL console |
|
|
371
|
+
|
|
372
|
+
### GitHub Tools
|
|
373
|
+
|
|
374
|
+
| Tool | Description |
|
|
375
|
+
|---|---|
|
|
376
|
+
| `nomoreide_github_set_token` | Store a GitHub token for API access |
|
|
377
|
+
| `nomoreide_github_list_prs` / `nomoreide_github_get_pr` | Inspect pull requests |
|
|
378
|
+
| `nomoreide_github_get_pr_diff` | Fetch a pull request diff |
|
|
379
|
+
| `nomoreide_github_create_pr` / `nomoreide_github_merge_pr` | Create or merge pull requests with explicit user intent |
|
|
380
|
+
| `nomoreide_github_list_issues` / `nomoreide_github_get_issue` | Inspect issues |
|
|
381
|
+
| `nomoreide_github_list_issue_comments` / `nomoreide_github_add_issue_comment` | Read or add issue and PR comments |
|
|
382
|
+
| `nomoreide_github_create_issue` | Create an issue |
|
|
383
|
+
| `nomoreide_github_get_commit_ci` | Inspect commit check status |
|
|
384
|
+
| `nomoreide_github_list_workflow_runs` | List recent GitHub Actions workflow runs |
|
|
385
|
+
|
|
421
386
|
---
|
|
422
387
|
|
|
423
388
|
## Example Configurations
|
|
@@ -462,7 +427,10 @@ NoMoreIDE is designed to be **safe for AI agents to call without guard rails**:
|
|
|
462
427
|
- Does not kill processes it did not start
|
|
463
428
|
- Reports port conflicts instead of terminating the occupying process
|
|
464
429
|
- Git tools omit all destructive operations (no `reset --hard`, `clean`, `push --force`, or `branch -D`)
|
|
465
|
-
-
|
|
430
|
+
- Database MCP tools are read-only; writes are staged for the human-only SQL console
|
|
431
|
+
- Database writes require explicit unlock, preview, and commit
|
|
432
|
+
- GitHub create/comment/merge tools require a configured token and explicit user intent
|
|
433
|
+
- Config is scoped to `~/.config/nomoreide/config.json`
|
|
466
434
|
- Logs are written only to `.nomoreide/logs/`
|
|
467
435
|
|
|
468
436
|
---
|
package/dist/core/workflows.js
CHANGED
|
@@ -72,17 +72,20 @@ const COMMIT_GATE = {
|
|
|
72
72
|
message: "Stage the current changes and create one AI-written commit?",
|
|
73
73
|
};
|
|
74
74
|
/**
|
|
75
|
-
* One lightweight AI pass that
|
|
76
|
-
*
|
|
77
|
-
* skill, but a single pass (no review report, no splitting into many commits).
|
|
78
|
-
* Shared by the commit-bearing templates.
|
|
75
|
+
* One lightweight AI pass that prepares a real commit message before the human
|
|
76
|
+
* gate. The deterministic commit action then uses the approved message directly.
|
|
79
77
|
*/
|
|
80
|
-
const
|
|
78
|
+
const COMMIT_MESSAGE_STEP = {
|
|
81
79
|
kind: "agent",
|
|
80
|
+
id: "commit-message",
|
|
81
|
+
title: "Generate commit message",
|
|
82
|
+
prompt: "Stage my changes with `nomoreide_git_stage` (skip anything that looks like a secret, e.g. `.env`), inspect the staged diff once with `nomoreide_git_staged_diff`, then write one conventional-commit message — a `<type>: concise title` line (feat/fix/refactor/chore/docs/test) plus a few short bullets of what changed. Do NOT commit. Reply with ONLY the commit message you recommend.",
|
|
83
|
+
};
|
|
84
|
+
const COMMIT_ACTION_STEP = {
|
|
85
|
+
kind: "action",
|
|
82
86
|
id: "commit",
|
|
83
|
-
title: "Commit
|
|
84
|
-
|
|
85
|
-
verify: "committed",
|
|
87
|
+
title: "Commit with approved message",
|
|
88
|
+
op: "commit",
|
|
86
89
|
};
|
|
87
90
|
/**
|
|
88
91
|
* The Phase-1 starter set. These are plain data (not hardcoded UI), so the same
|
|
@@ -95,8 +98,9 @@ export const BUILTIN_WORKFLOWS = [
|
|
|
95
98
|
description: "Pause for approval, make one AI-written commit, then pause again before pushing.",
|
|
96
99
|
builtin: true,
|
|
97
100
|
steps: [
|
|
101
|
+
COMMIT_MESSAGE_STEP,
|
|
98
102
|
{ ...COMMIT_GATE },
|
|
99
|
-
|
|
103
|
+
COMMIT_ACTION_STEP,
|
|
100
104
|
{ kind: "gate", id: "gate-push", title: "Approve push", message: "Push to the remote?" },
|
|
101
105
|
{ kind: "action", id: "push", title: "Push", op: "push" },
|
|
102
106
|
],
|
|
@@ -107,8 +111,9 @@ export const BUILTIN_WORKFLOWS = [
|
|
|
107
111
|
description: "Approve the AI commit, push, then use quick AI turns to open and squash-merge the PR.",
|
|
108
112
|
builtin: true,
|
|
109
113
|
steps: [
|
|
114
|
+
COMMIT_MESSAGE_STEP,
|
|
110
115
|
{ ...COMMIT_GATE },
|
|
111
|
-
|
|
116
|
+
COMMIT_ACTION_STEP,
|
|
112
117
|
{ kind: "gate", id: "gate-push", title: "Approve push", message: "Push and open a PR?" },
|
|
113
118
|
{ kind: "action", id: "push", title: "Push", op: "push" },
|
|
114
119
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/core/workflows.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/core/workflows.ts"],"names":[],"mappings":"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"}
|