clew-code 0.4.5 → 0.4.7
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.md +1 -1
- package/README.md +367 -250
- package/dist/main.js +2296 -2111
- package/docs/architecture/provider-system.md +107 -0
- package/package.json +162 -162
package/README.md
CHANGED
|
@@ -1,250 +1,367 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<img src="assets/clew-logo-long.png" alt="Clew Code" width="
|
|
4
|
-
|
|
5
|
-
# Clew Code
|
|
6
|
-
|
|
7
|
-
**
|
|
8
|
-
|
|
9
|
-
A
|
|
10
|
-
|
|
11
|
-
[](https://github.com/ClewCode/ClewCode/releases)
|
|
13
|
-
[](https://www.npmjs.com/package/clew-code)
|
|
14
|
-
[](https://github.com/ClewCode/ClewCode/actions/workflows/ci.yml)
|
|
15
|
-
[](#license)
|
|
16
|
-
[](https://github.com/ClewCode/ClewCode/stargazers)
|
|
12
|
+
[](https://github.com/ClewCode/ClewCode/releases)
|
|
13
|
+
[](https://www.npmjs.com/package/clew-code)
|
|
14
|
+
[](https://github.com/ClewCode/ClewCode/actions/workflows/ci.yml)
|
|
15
|
+
[](#license)
|
|
16
|
+
[](https://bun.sh)
|
|
17
|
+
|
|
18
|
+
[GitHub](https://github.com/ClewCode/ClewCode) · [Website](https://clew-code.org) · [Documentation](https://clew-docs.pages.dev)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
**Clew Code is a local-first, multi-provider AI coding CLI.** It is built to run on your own machine using your own API keys, with support for 29 LLM providers. Featuring a built-in SQLite memory system, a peer-to-peer LAN swarm capability, Model Context Protocol (MCP) tool integration, and multiple execution layers, it allows you to run agentic workflows locally or scale them across your local network.
|
|
25
|
+
|
|
26
|
+
<table>
|
|
27
|
+
<tr><td><b>A real terminal interface</b></td><td>Ink-based terminal REPL with autocompletion, slash commands, syntax highlighting, and inline tool stream.</td></tr>
|
|
28
|
+
<tr><td><b>Durable memory loop</b></td><td>SQLite-backed memory store that builds a factual profile of your project, manages context compaction, and injects relevant context into prompt cycles.</td></tr>
|
|
29
|
+
<tr><td><b>Peer-to-peer swarm</b></td><td>Zero-config multicast LAN discovery. Synchronize memory, assign tasks, and broadcast shell execution to multiple peer nodes.</td></tr>
|
|
30
|
+
<tr><td><b>Extensible tools & MCP</b></td><td>Integrates with external tools over Model Context Protocol (stdio, SSE, DirectConnect) and supports custom markdown-based skills (SKILL.md).</td></tr>
|
|
31
|
+
<tr><td><b>Multiple execution layers</b></td><td>Run tasks using standard Agents, isolated Subagents, teammate swarms, or delegate to external CLIs via Process Delegates.</td></tr>
|
|
32
|
+
<tr><td><b>Comprehensive guardrails</b></td><td>Secondary LLM guardian validation, manual approve/deny override, and multi-mode permissions (ask, auto, plan, etc.).</td></tr>
|
|
33
|
+
</table>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Table of Contents
|
|
38
|
+
|
|
39
|
+
- [Overview](#overview)
|
|
40
|
+
- [Architecture](#architecture)
|
|
41
|
+
- [Execution Layers and Model Routing](#execution-layers-and-model-routing)
|
|
42
|
+
- [Advanced Architectural Subsystems](#advanced-architectural-subsystems)
|
|
43
|
+
- [Installation](#installation)
|
|
44
|
+
- [Quick Start](#quick-start)
|
|
45
|
+
- [Supported Providers](#supported-providers)
|
|
46
|
+
- [CLI Options](#cli-options)
|
|
47
|
+
- [Commands Reference](#commands-reference)
|
|
48
|
+
- [Tools Reference](#tools-reference)
|
|
49
|
+
- [Configuration](#configuration)
|
|
50
|
+
- [Project Structure](#project-structure)
|
|
51
|
+
- [Development Guide](#development-guide)
|
|
52
|
+
- [License](#license)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Overview
|
|
57
|
+
|
|
58
|
+
Clew Code is an autonomous AI coding agent designed to live in your terminal. It is provider-agnostic, allowing you to bring your own API keys from OpenAI, Google, DeepSeek, Groq, OpenRouter, a local Ollama instance, or any other compatible provider, and switch between them dynamically mid-session.
|
|
59
|
+
|
|
60
|
+
Key design philosophies:
|
|
61
|
+
* **Privacy & Local Control:** Your source code, active memory, and configurations remain 100% local on your machine.
|
|
62
|
+
* **Context Optimization:** Built-in SQLite memory ranks context by importance and access frequency, dynamically injecting relevant history into prompts.
|
|
63
|
+
* **Decentralized Scaling:** Clew instances discover each other on the local network (LAN), synchronizing memory and distributing tasks automatically.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Architecture
|
|
68
|
+
|
|
69
|
+
Clew Code is divided into a clean, modular structure. Below is a high-level overview of how the CLI REPL, the Query Engine, the memory systems, and the provider adapters coordinate:
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
graph TD
|
|
73
|
+
User([User]) <--> REPL[REPL Interface\nInk & React 19]
|
|
74
|
+
REPL <--> QE[Query Engine\nTool Loop & Router]
|
|
75
|
+
QE <--> SQLite[(SQLite\nPersistent Memory)]
|
|
76
|
+
QE <--> Tools[Built-in Tools\nFile, Bash, Web, MCP]
|
|
77
|
+
QE <--> Peers[Peer Server\nLAN Swarm Sync]
|
|
78
|
+
QE <--> Provider[Provider Manager\n29 Model Adapters]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Execution Layers and Model Routing
|
|
84
|
+
|
|
85
|
+
Clew Code separates execution agents (how the work is scheduled and structured) from backend model providers (the engines driving inference).
|
|
86
|
+
|
|
87
|
+
### Execution Layers
|
|
88
|
+
|
|
89
|
+
Work is distributed across four distinct layers to balance isolation, capability, and performance:
|
|
90
|
+
|
|
91
|
+
* **Agent (Root Agent):** The main interactive session. It coordinates the overall workspace, maintains the system prompt, handles session-scoped permissions, and holds the active SQLite memory context. Custom agents can be configured dynamically or defined locally under `.clew/agents/*.md`.
|
|
92
|
+
* **Subagent (Child Agent):** Short-lived, task-focused processes spawned in the background via the `AgentTool`. Subagents run concurrently in their own isolated memory contexts (often with read-only tools) to perform targeted tasks such as triaging failed unit tests, auditing changed files, or researching a subdirectory.
|
|
93
|
+
* **Peer (LAN Peer Swarm):** Decentralized peer-to-peer nodes discovered automatically across the local network via UDP multicast. Peers communicate using correlation-ID brokered messages, allowing you to delegate tasks, synchronize memory databases, and broadcast shell execution to other local machines.
|
|
94
|
+
* **Process Delegate (Codex / Shell Delegation):** A local subprocess wrapper that delegates tasks to external CLI tools or models using `exec`/`pty`. For example, in personal command-center mode, the main agent delegates editor file changes to a Codex worker, monitors execution, and evaluates the results before merging.
|
|
95
|
+
|
|
96
|
+
### Model Routing and Providers
|
|
97
|
+
|
|
98
|
+
Provider adapters map query payloads to their corresponding external APIs. The main intelligence engines include:
|
|
99
|
+
|
|
100
|
+
* **Claude:** Native support for Anthropic models. In personal configurations, these models act as the master planner, supervisor, and guardian, coordinating workflows and reviewing changes made by workers.
|
|
101
|
+
* **Codex:** Targeted code-generation models that run in the background (via Process Delegates) to perform precise edits, script generation, and code rewrites.
|
|
102
|
+
* **OpenCode / OpenCode-Go:** Specialized open-source model configurations and endpoints optimized for code comprehension and fast inference.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Advanced Architectural Subsystems
|
|
107
|
+
|
|
108
|
+
Clew Code uses several advanced subsystems to enable autonomous, safe, and context-optimized agent operations:
|
|
109
|
+
|
|
110
|
+
* **Durable SQLite-backed Memory:** Memory is stored in a local SQLite database with tables for `memories` (tracking importance, confidence, access counts, and type rankings) and `memory_timeline` (event tracking). Context is injected dynamically into system prompts using an `importance * recency * confidence` score. Durable facts are automatically extracted during context compaction and synced across peers. Global project guidance is maintained under `.clew/memory/` in `MEMORY.md` (project overview), `DECISIONS.md` (architectural decisions), and `TASTE.md` (style/formatting preferences).
|
|
111
|
+
* **Context Compaction and Checkpoints:** When the prompt token window fills up, Clew Code runs a multi-pass context compaction loop that recursively compresses history into factual summaries. To prevent loss of active work during compaction, the supervisor captures progress snapshots as checkpoints at 20%, 45%, and 70% milestones, along with a `notes.md` scratchpad for recovery.
|
|
112
|
+
* **Autonomous Task Queue and Daemon Mode:** Features a persistent task queue that operates with lease-based concurrency limits (allowing a maximum of 3 concurrent active tasks), exponential backoff retries, and a dead-letter queue (DLQ). The CLI can run in a background Daemon Mode to consume the task queue, run scheduled natural-language cron jobs, and perform memory distillation while the terminal is closed.
|
|
113
|
+
* **Model Context Protocol (MCP):** A unified client interface supporting stdio, Server-Sent Events (SSE), and direct in-process WebSocket connection adapters. It dynamically fetches tool declarations and resources, extending the agent's capabilities with external server tools.
|
|
114
|
+
* **Permissions and Guardian Guardrails:** Configurable permission systems restrict tool execution using policies like `ask` (confirm each edit/run), `auto` (bypass prompts), and `guardian`. Under Guardian Mode, a secondary LLM audits execution safety, blocking dangerous terminal shell operations or sensitive edits unless overridden via `/approve`.
|
|
115
|
+
* **Goal Verification:** Objectives defined via `/goal` are tracked using heuristic pre-checks and verified independently by a separate LLM verification loop. The agent will not exit until the verifier confirms that all objectives in the plan are completed.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Installation
|
|
120
|
+
|
|
121
|
+
### Prerequisites
|
|
122
|
+
* [Bun](https://bun.sh) v1.3 or higher
|
|
123
|
+
* Git installed on your system
|
|
124
|
+
|
|
125
|
+
### Via npm
|
|
126
|
+
```bash
|
|
127
|
+
npm install -g clew-code
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### From Source
|
|
131
|
+
```bash
|
|
132
|
+
# Clone the repository
|
|
133
|
+
git clone https://github.com/ClewCode/ClewCode.git
|
|
134
|
+
cd ClewCode
|
|
135
|
+
|
|
136
|
+
# Install dependencies and build
|
|
137
|
+
bun install
|
|
138
|
+
bun run build
|
|
139
|
+
|
|
140
|
+
# Start the CLI
|
|
141
|
+
bun run start
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Quick Start
|
|
147
|
+
|
|
148
|
+
### 1. Launch the REPL
|
|
149
|
+
Navigate to any repository and run `clew`. It will guide you through setting up your first model provider:
|
|
150
|
+
```bash
|
|
151
|
+
cd my-cool-project
|
|
152
|
+
clew
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 2. Run One-Shot Commands
|
|
156
|
+
You can ask questions or execute tasks directly without entering the interactive shell:
|
|
157
|
+
```bash
|
|
158
|
+
clew -p "Check if all unit tests are passing and fix them if they fail"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 3. Resume Previous Sessions
|
|
162
|
+
Resume exactly where you left off in your last coding session:
|
|
163
|
+
```bash
|
|
164
|
+
clew --resume last
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Supported Providers
|
|
170
|
+
|
|
171
|
+
Clew Code interfaces with the following model provider registries natively:
|
|
172
|
+
|
|
173
|
+
* **openai** - OpenAI models via native SDK
|
|
174
|
+
* **anthropic** - Anthropic Claude models via native SDK
|
|
175
|
+
* **google** - Google Gemini models via native SDK
|
|
176
|
+
* **google-assist** - Google Cloud AI and Code Assist integrations
|
|
177
|
+
* **openrouter** - OpenRouter unified endpoint router
|
|
178
|
+
* **deepseek** - DeepSeek API models (e.g. DeepSeek-V3, DeepSeek-R1)
|
|
179
|
+
* **groq** - Groq Cloud API for ultra-fast Llama/Mixtral inference
|
|
180
|
+
* **xai** - xAI Grok models
|
|
181
|
+
* **mistral** - Mistral AI platform
|
|
182
|
+
* **kilocode** / **opencode** / **opencode-go** - Specialized coding endpoints
|
|
183
|
+
* **ollama** - Local Ollama models running on localhost
|
|
184
|
+
* **together** / **fireworks** / **deepinfra** - Serverless model routers
|
|
185
|
+
* **nvidia** - NVIDIA NIM API
|
|
186
|
+
* **cohere** - Cohere Command models
|
|
187
|
+
* **perplexity** - Perplexity Sonar search models
|
|
188
|
+
* **cerebras** / **siliconflow** / **moonshot** / **zhipu** - Additional API integrations
|
|
189
|
+
* **huggingface** / **poe** / **digitalocean** / **cline** - Workspace / community adapters
|
|
190
|
+
* **clew-gateway** - Standard gateway auth authentication endpoint
|
|
191
|
+
* **custom** - Any custom OpenAI-compatible endpoint
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## CLI Options
|
|
196
|
+
|
|
197
|
+
Pass these arguments to the `clew` binary to customize your session:
|
|
198
|
+
|
|
199
|
+
| Flag / Option | Description |
|
|
200
|
+
| :--- | :--- |
|
|
201
|
+
| `-p, --prompt <text>` | Execute a one-shot prompt in the repository and exit immediately. |
|
|
202
|
+
| `-c, --continue` | Continue the most recent conversation in the current directory. |
|
|
203
|
+
| `-r, --resume [id]` | Resume a conversation by session ID, or open the interactive picker. |
|
|
204
|
+
| `--fork-session` | When resuming a session, clone it under a new ID instead of overwriting history. |
|
|
205
|
+
| `--from-pr [id]` | Resume a session linked to a specific GitHub PR number or URL. |
|
|
206
|
+
| `--model <model>` | Specify model override (e.g. `sonnet`, `opus`, `gemini-2.5-flash`). |
|
|
207
|
+
| `--effort <level>` | Set reasoning effort level (`low`, `medium`, `high`, or `max`). |
|
|
208
|
+
| `--agent <agent>` | Specify custom agent profile for the session. |
|
|
209
|
+
| `--permission-mode <mode>` | Specify default permission mode (`default`, `ask`, `plan`, `auto`, etc.). |
|
|
210
|
+
| `--add-dir <dirs...>` | Grant tool access to additional directories outside the workspace. |
|
|
211
|
+
| `--ide` | Automatically connect to the local IDE on startup if available. |
|
|
212
|
+
| `--session-id <uuid>` | Force a specific session ID for the active workspace. |
|
|
213
|
+
| `-n, --name <name>` | Set display name for this session (shown in /resume and terminal title). |
|
|
214
|
+
| `--peer-name <name>` | Set display name for local LAN peer discovery. |
|
|
215
|
+
| `--peer-share` | Automatically launch this instance as a sharing worker peer on startup. |
|
|
216
|
+
| `--computer` | Enable OS computer-use tool (Windows only). |
|
|
217
|
+
| `-d, --debug` | Enable developer debugging output. |
|
|
218
|
+
| `--verbose` | Override verbose logging setting from config. |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Commands Reference
|
|
223
|
+
|
|
224
|
+
Type these slash commands directly inside the interactive REPL:
|
|
225
|
+
|
|
226
|
+
### Core Commands
|
|
227
|
+
* `/model <name>` - Switch the provider or LLM model mid-session.
|
|
228
|
+
* `/status` - Check active provider, remaining context, and session metrics.
|
|
229
|
+
* `/doctor` - Run environment diagnostics and connectivity checks.
|
|
230
|
+
* `/context` - Inspect active context tokens and compaction boundaries.
|
|
231
|
+
* `/plan` - Enter/exit plan mode to map out large-scale refactors.
|
|
232
|
+
* `/rewind` - Undo the last user prompt and assistant response.
|
|
233
|
+
* `/effort` - Adjust reasoning effort parameter.
|
|
234
|
+
* `/stats` - View session statistics and token usage.
|
|
235
|
+
* `/theme` - Switch between dark, light, and custom terminal UI themes.
|
|
236
|
+
* `/vim` - Toggle Vim keybindings in the REPL editor.
|
|
237
|
+
|
|
238
|
+
### Memory & Learning
|
|
239
|
+
* `/memory init` - Initialize a clean SQLite memory database for the project.
|
|
240
|
+
* `/memory scan` - Scan the active codebase to build code hierarchy memory.
|
|
241
|
+
* `/memory dashboard` - View memory statistics, confidence scores, and facts.
|
|
242
|
+
* `/rule` - Show project-specific behavioral rules auto-observed by the model. `/rule off` to disable, `/rule on` to re-enable.
|
|
243
|
+
* `/skills` - List and manage active custom skills defined in `.clew/skills/`.
|
|
244
|
+
|
|
245
|
+
### Swarm & LAN Peers
|
|
246
|
+
* `/peer discover` - Search the LAN for active Clew nodes.
|
|
247
|
+
* `/peer swarm <cmd>` - Broadcast a shell command to all discovered peers.
|
|
248
|
+
* `/peer dashboard` - Open the visual coordination panel for peer status.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Tools Reference
|
|
253
|
+
|
|
254
|
+
The agent has access to the following built-in tools based on active permission modes:
|
|
255
|
+
|
|
256
|
+
### File and Terminal I/O
|
|
257
|
+
* `FileReadTool` / `FileWriteTool` / `FileEditTool` - Read, write, and modify files.
|
|
258
|
+
* `GlobTool` / `GrepTool` - Search files and directory structures.
|
|
259
|
+
* `BashTool` - Execute command-line commands in the local shell.
|
|
260
|
+
* `PowerShellTool` - Execute PowerShell scripts natively (Windows only).
|
|
261
|
+
|
|
262
|
+
### Web Access and Scraping
|
|
263
|
+
* `WebSearchTool` - Query web search engines.
|
|
264
|
+
* `WebFetchTool` - Retrieve raw markdown/HTML from public URLs.
|
|
265
|
+
* `BrowserTool` - Automate headless Chrome using Playwright.
|
|
266
|
+
|
|
267
|
+
### Task Management
|
|
268
|
+
* `TaskCreateTool` / `TaskGetTool` / `TaskUpdateTool` / `TaskListTool` - Track workflow task checklists.
|
|
269
|
+
* `TaskStopTool` / `TaskOutputTool` - Manage long-running tasks.
|
|
270
|
+
* `GoalTool` - Verify steps against overall task targets.
|
|
271
|
+
|
|
272
|
+
### Advanced Capabilities
|
|
273
|
+
* `AgentTool` - Spawns a subagent to research, write tests, or triage issues.
|
|
274
|
+
* `LSPTool` - Query local Language Server Protocol diagnostics.
|
|
275
|
+
* `ProcessDelegateTool` - Delegate prompts to external CLI models or Codex.
|
|
276
|
+
* `MemoryFeedbackTool` - Update project memories, decisions, and preferences.
|
|
277
|
+
* `ProjectRuleTool` - Save, list, or remove project-specific behavioral rules auto-observed from user patterns (stored in `.clew/rules.json`).
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Configuration
|
|
282
|
+
|
|
283
|
+
Clew Code configuration files reside in `~/.clew/` on your system:
|
|
284
|
+
|
|
285
|
+
* `~/.clew/settings.json` - Shared global settings (models, defaults, formatting).
|
|
286
|
+
* `~/.clew/settings.local.json` - Environment-specific private overrides.
|
|
287
|
+
* `~/.clew/memory/` - Text files containing `MEMORY.md`, `DECISIONS.md`, and `TASTE.md`.
|
|
288
|
+
|
|
289
|
+
Set these environment variables to authenticate with providers:
|
|
290
|
+
|
|
291
|
+
| Variable | Description |
|
|
292
|
+
| :--- | :--- |
|
|
293
|
+
| `OPENAI_API_KEY` | Authentication key for OpenAI models |
|
|
294
|
+
| `GOOGLE_API_KEY` | Authentication key for Google Gemini / Code Assist |
|
|
295
|
+
| `DEEPSEEK_API_KEY` | Authentication key for DeepSeek models |
|
|
296
|
+
| `GROQ_API_KEY` | Authentication key for Groq Cloud API |
|
|
297
|
+
| `OPENROUTER_API_KEY` | Authentication key for OpenRouter API |
|
|
298
|
+
| `OLLAMA_HOST` | Custom address for local Ollama server (e.g., `http://localhost:11434`) |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Project Structure
|
|
303
|
+
|
|
304
|
+
```text
|
|
305
|
+
src/
|
|
306
|
+
├── main.tsx # CLI entry point & flag parser
|
|
307
|
+
├── replLauncher.tsx # Boots the Ink/React 19 REPL
|
|
308
|
+
├── QueryEngine.ts # Streaming message/tool loop
|
|
309
|
+
├── query.ts # Non-streaming variant
|
|
310
|
+
├── commands/ # Slash commands (prompt, local, local-jsx types)
|
|
311
|
+
├── tools/ # 70+ tools (File I/O, Bash, Browser, Peer, MCP, etc.)
|
|
312
|
+
├── peer/ # LAN P2P: UDP multicast discovery, HTTP heartbeat
|
|
313
|
+
├── memory/ # SQLite-backed memory with importance/recency ranking
|
|
314
|
+
├── services/ # 36+ services (AI, MCP, autonomous, compact, etc.)
|
|
315
|
+
├── skills/ # SKILL.md loader (Claude Code compatible)
|
|
316
|
+
├── plugins/ # Plugin loader, registry, marketplace
|
|
317
|
+
├── agentRuntime/ # Background agent orchestration
|
|
318
|
+
└── remote/ # WebSocket server, auth tokens, NAT relay (Bridge v2)
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Full architecture reference in **[AGENTS.md](AGENTS.md)**.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Development Guide
|
|
326
|
+
|
|
327
|
+
Run development commands from the repository root using **Bun**:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
bun run dev # Live-reload REPL (Voice, Transcript, Chicago flags on)
|
|
331
|
+
bun run dev:channels # Launch dev server with development channels
|
|
332
|
+
bun test # Run the test suite via Vitest
|
|
333
|
+
bun test --bail # Run tests and stop on the first failure
|
|
334
|
+
bun run lint # Run Biome linter with auto-fix
|
|
335
|
+
bun run format # Run Biome formatter with auto-fix
|
|
336
|
+
bun x tsc --noEmit # Compile-free TypeScript validation
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Pre-commit check
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
bun run check:ci && bun x tsc --noEmit && bun test --bail
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Knowledge graph
|
|
346
|
+
|
|
347
|
+
This project has a pre-built knowledge graph for codebase exploration:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
graphify query "<question>" # Ask questions about the codebase
|
|
351
|
+
graphify path "<A>" "<B>" # Trace relationships between symbols
|
|
352
|
+
graphify explain "<concept>" # Focused explanation of a concept
|
|
353
|
+
graphify update . # Refresh after code changes (AST-only, no API cost)
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Important: `.js` shadows `.ts`
|
|
357
|
+
|
|
358
|
+
`src/` has ~188 committed `.js` files next to `.ts`/`.tsx` twins (JS-to-TS migration in progress). Bun resolves `.js` import specifiers to the real `.js` file — if you edit only the `.ts` file, your change won't run at runtime. Check for a `.js` sibling and edit both.
|
|
359
|
+
|
|
360
|
+
Full developer reference in **[AGENTS.md](AGENTS.md)**.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## License
|
|
365
|
+
|
|
366
|
+
Clew Code is licensed under the **GPL-3.0 License**. See [LICENSE.md](LICENSE.md) for details.
|
|
367
|
+
Full release history is available in [CHANGELOG.md](CHANGELOG.md).
|