- Category
- Developer Tools
- Rank
- No. 1714Tools index
Previous survey · No. 1719 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- forrestchang
- GitHub
- 7 stars
- Date
About
A basic, hackable AI code editor inspired by Cursor. Monaco editor plus Claude in ~600 lines of JS with no build step.
What it does
Minicursor opens a project in a browser workspace with navigation, tabs, editing, and Claude chat. Claude can inspect directories and files, then propose complete replacement contents. You inspect a side-by-side change view and explicitly accept or reject each proposed file edit.
Why it's ranked here
Its strongest case is legibility: the browser client and Node server expose the whole editing loop without a framework toolchain. The useful core is present, including streamed text, protected project boundaries, visible changes, and explicit approval. Some advertised agent behavior remains incomplete in the streaming path.
What's good
File access stays within one configured project root, and traversal attempts are rejected. Common generated directories are hidden from browsing. Unsaved state is tracked per open tab. Proposed changes require approval before writing, while file reads reject content larger than two megabytes.
Tradeoffs
Edits replace entire files rather than applying patches or individual hunks. The displayed comparison uses a simple line walk, so shifted code can appear as broad removal and addition. Streaming handles text but does not complete or execute requested file tools. There is no terminal or command-running agent loop.
How to use it well
Use it as a readable reference, a small local editor, or a controlled way to request and approve focused Claude changes. Keep requests narrow and inspect every replacement before accepting it. It does not cover terminal work, iterative command execution, or fine-grained acceptance within one file.
Technical notes+
package.json defines an ES module package, requires Node.js 18 or newer, exposes the minicursor binary through server/cli.js, and depends on Express plus the Anthropic SDK. server/index.js serves public/, exposes HTTP/JSON file and tree endpoints, streams chat text over SSE, confines paths through safeResolve, caps reads at 2 MiB, and writes accepted content as UTF-8. Its non-streaming chat branch executes read_file and list_dir tool requests, but the streaming branch leaves tool input accumulation and execution as comments. public/app.js manages Monaco models, dirty tabs, chat rendering, full-file edit blocks, and a basic line comparison. public/index.html loads Monaco 0.52.0 from jsDelivr. tests/smoke.js starts the server and checks metadata, tree, and static-root responses. .github/workflows/ci.yml runs linting and that smoke test on Node.js 20.
Observed
- License
- MIT
- Primary language
- JavaScript using ES modules
- Runtime
- Node.js 18 or newer
- Installation surface
- npm install, with start, development, lint, and test scripts
- Interfaces
- Command-line launcher plus a local browser interface backed by HTTP/JSON and SSE endpoints
- Dependencies
- Express and the Anthropic JavaScript SDK; Monaco Editor loads from a CDN
- Testing and CI
- A smoke test checks server metadata, project tree, and static-root responses; GitHub Actions runs lint and smoke testing
Read from README.md, package.json, public/app.js, server/cli.js, server/index.js, tests/smoke.js, LICENSE, .env.example, public/index.html, public/styles.css, .github/workflows/ci.yml.
What it can do
Edit code with AI assistance
Source code and user prompts → Modified or generated code
Generate code from natural language descriptions
Natural language prompts describing desired functionality → Source code implementation
Provide code completion suggestions
Partially written code → Code completion suggestions
Debug and fix code issues
Code with bugs or errors → Corrected code with fixes
Refactor existing code
Existing source code → Improved or restructured code
Explain code functionality
Source code snippets → Natural language explanations of code behavior
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
