shardstitch 0.0.1 → 0.0.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.
- package/README.md +51 -4
- package/cli.js +67 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,11 +2,58 @@
|
|
|
2
2
|
|
|
3
3
|
**3:47pm. Mid-refactor. "Rate limit reached."**
|
|
4
4
|
|
|
5
|
-
ShardStitch captures your entire
|
|
6
|
-
dependency graph, intent — and stitches it into the next AI tool (Claude,
|
|
7
|
-
Cursor, Codex, Gemini, Windsurf, Aider). 100% local, zero telemetry.
|
|
5
|
+
Your code is half-written. Your plan is in your head. ShardStitch captures your entire session — git diff, changed files, dependency graph, intent — and stitches it into the next AI tool. One hotkey. Keep building like nothing happened.
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install shardstitch
|
|
11
|
+
npx shardstitch
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
When Claude, Cursor, Codex, or Gemini locks you out mid-session, ShardStitch:
|
|
17
|
+
|
|
18
|
+
1. **Scans your project** — git diff, changed files, recent commits, your notes
|
|
19
|
+
2. **Builds a dependency graph** — impact radius, architecture communities — and warns the next AI what's dangerous to touch
|
|
20
|
+
3. **Generates a continuation prompt** formatted for the target tool
|
|
21
|
+
4. **Injects it** into the tool's pickup file (CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules) for automatic discovery
|
|
22
|
+
|
|
23
|
+
Under 30 seconds, end to end.
|
|
24
|
+
|
|
25
|
+
## Not just for switching tools
|
|
26
|
+
|
|
27
|
+
The same trick fixes a bloated session in the *same* tool. Long AI chats accumulate a huge context tree — token burn climbs, responses slow down, and eventually you hit "Service is busy" even with quota left. ShardStitch is the clean-restart button: extract a compact context, open a fresh window of the same tool, paste, keep going.
|
|
28
|
+
|
|
29
|
+
## 22 supported AI tools
|
|
30
|
+
|
|
31
|
+
Claude Code, Claude Desktop, Cursor, Codex CLI, Gemini CLI, Windsurf, Aider, Kiro, Amazon Q Developer, DeepSeek, ChatGPT, OpenCode, Trae, Factory Droid, OpenClaw, VS Code Copilot, JetBrains AI, Zed AI, Replit Agent, Cody, Continue, and Tabnine.
|
|
32
|
+
|
|
33
|
+
## 7 surfaces
|
|
34
|
+
|
|
35
|
+
- **Web dashboard** — scan, generate, copy, download
|
|
36
|
+
- **VS Code / Cursor extension** — Alt+G hotkey
|
|
37
|
+
- **MCP server** — Claude Code and Cursor call it directly
|
|
38
|
+
- **CLI** — `npx shardstitch` or `shardstitch capture`
|
|
39
|
+
- **Desktop app** — standalone Windows exe
|
|
40
|
+
- **Autosave hooks** — auto-inject on session end
|
|
41
|
+
- **Local LLM failover** — Ollama, vLLM, LM Studio (zero cloud)
|
|
42
|
+
|
|
43
|
+
## Key features
|
|
44
|
+
|
|
45
|
+
- **Per-agent formatting** — 22 format adapters, one for each tool
|
|
46
|
+
- **AI task router** — semantic matching picks the best tool for each task
|
|
47
|
+
- **Persistent memory** — project decisions survive across sessions
|
|
48
|
+
- **Team coordination** — shared `.shardstitch/` directory
|
|
49
|
+
- **Tamper-evident audit trail** — hash-chained timeline logs
|
|
50
|
+
- **Dependency graph analysis** — impact radius, god nodes, architecture communities
|
|
51
|
+
|
|
52
|
+
## 100% local
|
|
53
|
+
|
|
54
|
+
Your code never leaves your machine. No cloud, no telemetry, no account required. All processing happens on your hardware.
|
|
55
|
+
|
|
56
|
+
## Links
|
|
10
57
|
|
|
11
58
|
- Website: https://shardstitch.com
|
|
12
59
|
- GitHub: https://github.com/shardstitch/shardstitch
|
package/cli.js
CHANGED
|
@@ -1,7 +1,72 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// ShardStitch zero-friction launcher: `npx shardstitch`
|
|
3
|
+
// Finds a local install (exe or Python source) and starts the dashboard.
|
|
4
|
+
// Falls back to download instructions if nothing is installed.
|
|
5
|
+
|
|
6
|
+
const { spawnSync, spawn } = require("child_process");
|
|
7
|
+
const { existsSync } = require("fs");
|
|
8
|
+
const { join } = require("path");
|
|
9
|
+
const os = require("os");
|
|
10
|
+
|
|
11
|
+
const CANDIDATE_DIRS = [
|
|
12
|
+
process.env.SHARDSTITCH_HOME,
|
|
13
|
+
join(os.homedir(), "ShardStitch"),
|
|
14
|
+
join(os.homedir(), ".shardstitch", "app"),
|
|
15
|
+
process.platform === "win32" ? join(process.env.LOCALAPPDATA || "", "ShardStitch") : null,
|
|
16
|
+
process.platform === "win32" ? "C:\\Program Files\\ShardStitch" : "/opt/shardstitch",
|
|
17
|
+
].filter(Boolean);
|
|
18
|
+
|
|
19
|
+
function findExe() {
|
|
20
|
+
const exeName = process.platform === "win32" ? "ShardStitch.exe" : "shardstitch";
|
|
21
|
+
for (const dir of CANDIDATE_DIRS) {
|
|
22
|
+
const p = join(dir, exeName);
|
|
23
|
+
if (existsSync(p)) return p;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function findPythonApp() {
|
|
29
|
+
for (const dir of CANDIDATE_DIRS) {
|
|
30
|
+
const p = join(dir, "app.py");
|
|
31
|
+
if (existsSync(p)) return p;
|
|
32
|
+
}
|
|
33
|
+
// Also: running from a source checkout
|
|
34
|
+
const local = join(process.cwd(), "app.py");
|
|
35
|
+
if (existsSync(local)) return local;
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function pythonCmd() {
|
|
40
|
+
for (const cmd of ["python", "python3", "py"]) {
|
|
41
|
+
const r = spawnSync(cmd, ["--version"], { stdio: "ignore", shell: false });
|
|
42
|
+
if (r.status === 0) return cmd;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const exe = findExe();
|
|
48
|
+
if (exe) {
|
|
49
|
+
console.log(" Starting ShardStitch from " + exe);
|
|
50
|
+
spawn(exe, [], { detached: true, stdio: "ignore" }).unref();
|
|
51
|
+
console.log(" Dashboard: http://127.0.0.1:8765");
|
|
52
|
+
process.exit(0);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const appPy = findPythonApp();
|
|
56
|
+
const py = pythonCmd();
|
|
57
|
+
if (appPy && py) {
|
|
58
|
+
console.log(" Starting ShardStitch (Python) from " + appPy);
|
|
59
|
+
spawn(py, [appPy], { detached: true, stdio: "ignore", cwd: join(appPy, "..") }).unref();
|
|
60
|
+
console.log(" Dashboard: http://127.0.0.1:8765");
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
|
|
2
64
|
console.log("");
|
|
3
65
|
console.log(" ShardStitch — move your AI coding session between tools.");
|
|
4
|
-
console.log(" The full CLI ships here soon.");
|
|
5
66
|
console.log("");
|
|
6
|
-
console.log(" Get
|
|
67
|
+
console.log(" No local install found. Get it at: https://shardstitch.com");
|
|
68
|
+
console.log(" (one-time purchase, runs 100% locally, zero cloud)");
|
|
7
69
|
console.log("");
|
|
70
|
+
console.log(" After installing, run `npx shardstitch` again to launch.");
|
|
71
|
+
console.log("");
|
|
72
|
+
process.exit(1);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shardstitch",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "ShardStitch —
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "ShardStitch — capture your AI coding session (git diff, dependency graph, intent) and stitch it into the next tool. 22 AI tools supported. 100% local, zero telemetry. https://shardstitch.com",
|
|
5
5
|
"homepage": "https://shardstitch.com",
|
|
6
6
|
"bugs": { "url": "https://github.com/shardstitch/shardstitch/issues" },
|
|
7
7
|
"repository": { "type": "git", "url": "git+https://github.com/shardstitch/shardstitch.git" },
|