@pixelguild/loom 0.1.0 → 0.1.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 +137 -0
- package/dist/cli/index.js +0 -0
- package/package.json +3 -2
package/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/pixelguild/loom/main/assets/loom_app_icon.png" width="96" height="96" alt="Loom">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">@pixelguild/loom</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Session intelligence layer for <a href="https://claude.ai/code">Claude Code</a>.<br>
|
|
9
|
+
<strong>Persistent memory · Intelligent archiving · Cross-project patterns · Peer LLM consultation</strong>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://www.npmjs.com/package/@pixelguild/loom"><img src="https://img.shields.io/npm/v/@pixelguild/loom?color=0a7bca&label=npm" alt="npm"></a>
|
|
14
|
+
<a href="https://github.com/pixelguild/loom/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@pixelguild/loom?color=333" alt="license"></a>
|
|
15
|
+
<a href="https://github.com/pixelguild/loom"><img src="https://img.shields.io/badge/github-pixelguild%2Floom-333?logo=github" alt="github"></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
Loom is an [MCP server](https://modelcontextprotocol.io) that gives Claude Code a long-term memory. It logs what Claude does, archives context when it grows large, and lets Claude pick up exactly where it left off in the next session.
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx @pixelguild/loom init
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This scaffolds `docs/loom/`, wires the MCP server into `.claude/mcp.json`, and adds instructions to your `CLAUDE.md`. That's it.
|
|
29
|
+
|
|
30
|
+
Or add manually:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
claude mcp add loom -- npx @pixelguild/loom
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## What it does
|
|
37
|
+
|
|
38
|
+
| Feature | Description |
|
|
39
|
+
|---------|-------------|
|
|
40
|
+
| **Context logging** | Structured entries (decisions, actions, issues, questions) appended to `docs/loom/context.md` |
|
|
41
|
+
| **Session pickup** | Claude reads context at session start and resumes where it left off |
|
|
42
|
+
| **Intelligent archiving** | Spawns a Claude subprocess to produce narrative archives with rolling carry-forward summaries |
|
|
43
|
+
| **Pattern library** | Global SQLite store with FTS5 search — save solutions in one project, find them everywhere |
|
|
44
|
+
| **Peer consultation** | Ask OpenAI, Vertex AI, or Ollama for a second opinion on architecture, debugging, or design |
|
|
45
|
+
| **Execution manifests** | Save structured plans for headless `claude` runs |
|
|
46
|
+
| **Per-project config** | Customize thresholds, providers, and settings via `loom.config.json` |
|
|
47
|
+
|
|
48
|
+
## How it works
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Session start Session end
|
|
52
|
+
| |
|
|
53
|
+
v v
|
|
54
|
+
loom_get_context --> Claude works --> loom_log_context
|
|
55
|
+
| with full |
|
|
56
|
+
| history v
|
|
57
|
+
v Token threshold?
|
|
58
|
+
Resume where Yes --> loom_archive_context
|
|
59
|
+
you left off |
|
|
60
|
+
v
|
|
61
|
+
Narrative archive with
|
|
62
|
+
carry-forward summary
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The latest archive's carry-forward summary + current `context.md` always gives Claude full project history without reading every old archive.
|
|
66
|
+
|
|
67
|
+
## MCP Tools
|
|
68
|
+
|
|
69
|
+
| Tool | Purpose |
|
|
70
|
+
|------|---------|
|
|
71
|
+
| `loom_get_context` | Read current context. Call at session start. |
|
|
72
|
+
| `loom_log_context` | Log a structured entry (action, decision, issue, question, dead_end, session_end) |
|
|
73
|
+
| `loom_get_session_status` | Token count, archive count, threshold status |
|
|
74
|
+
| `loom_archive_context` | Archive context (intelligent with Claude subprocess, mechanical fallback) |
|
|
75
|
+
| `loom_save_pattern` | Save a reusable pattern to the global library |
|
|
76
|
+
| `loom_find_pattern` | Search patterns across all projects |
|
|
77
|
+
| `loom_create_manifest` | Save a structured execution manifest |
|
|
78
|
+
| `loom_get_manifest` | List or retrieve manifests |
|
|
79
|
+
| `loom_consult_peer` | Ask a peer LLM for a second opinion |
|
|
80
|
+
|
|
81
|
+
## CLI
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npx @pixelguild/loom init # Scaffold project, wire MCP, inject CLAUDE.md
|
|
85
|
+
npx @pixelguild/loom status # Token count, archive status, context health
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Configuration
|
|
89
|
+
|
|
90
|
+
Layered config — per-project overrides global defaults.
|
|
91
|
+
|
|
92
|
+
**Global** `~/.loom/config.json`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"default_provider": "openai",
|
|
97
|
+
"providers": {
|
|
98
|
+
"openai": { "model": "gpt-4o" },
|
|
99
|
+
"vertex": { "model": "gemini-2.0-flash", "project": "my-gcp-project", "location": "us-central1" },
|
|
100
|
+
"ollama": { "model": "llama3.1", "host": "http://localhost:11434" }
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Per-project** `docs/loom/loom.config.json`:
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"archive_thresholds": { "warning": 40000, "archive": 50000 },
|
|
110
|
+
"peer_consultation": { "enabled": true, "allowed_providers": ["openai", "ollama"] }
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
| Variable | Purpose |
|
|
115
|
+
|----------|---------|
|
|
116
|
+
| `LOOM_PROJECT_ROOT` | Project directory (falls back to cwd) |
|
|
117
|
+
| `LOOM_OPENAI_API_KEY` | OpenAI API key for peer consultation |
|
|
118
|
+
|
|
119
|
+
## Storage
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
docs/loom/
|
|
123
|
+
context.md # Active session context
|
|
124
|
+
loom.config.json # Per-project config (optional)
|
|
125
|
+
archives/
|
|
126
|
+
2026-03-08-001.md # Timestamped narrative archives
|
|
127
|
+
manifests/
|
|
128
|
+
deploy-plan.md # Execution manifests
|
|
129
|
+
|
|
130
|
+
~/.loom/
|
|
131
|
+
config.json # Global config
|
|
132
|
+
loom.db # SQLite pattern library (FTS5)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## License
|
|
136
|
+
|
|
137
|
+
MIT © [Pixel Guild, LLC](https://pixelguild.com)
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelguild/loom",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Session intelligence layer for Claude Code — persistent memory, intelligent archiving, cross-project patterns, and peer LLM consultation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
12
|
-
"!dist/**/__tests__"
|
|
12
|
+
"!dist/**/__tests__",
|
|
13
|
+
"README.md"
|
|
13
14
|
],
|
|
14
15
|
"keywords": [
|
|
15
16
|
"claude",
|