wulun811/LiuHe
LiuHe
LLM-native code toolkit: Rust multi-language parser (tree-sitter) + 44 MCP tools for atomic editing, impact analysis, reference tracing and deterministic zero-LLM code quality gates. Built for the handless, eyeless, memoryless LLM.
Install
npx @deepseek-ai/dsh plugin --profile web add @jieai/dsh-malong-bridgeRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/liuhe)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from wulun811/LiuHe, cleaned of badges and images.
Malong LiuHe(码龙·六合工具)
LLM-Native Code Operations Toolkit — Code tooling reinvented for the LLM that has no hands, no eyes, and no memory.
English | 简体中文 | Docs | GitHub
Malong LiuHe is a toolkit built for LLMs rather than humans. It ships two components:
malong/— an MCP toolset (44 tools): symbol read/write, indexing, impact analysis, reference tracing, call graphs, dead-code detection, code review, security scanning, atomic batch editing, test orchestration, pipeline verification — served to the LLM over MCP (JSON-RPC over stdio).malong-parse/— a Rust parsing service: a tree-sitter-based multi-language symbol extraction engine (JavaScript/TypeScript/TSX/Python/Go/Rust/C/C++/Java/Bash), talking to the toolset over a Unix socket, with an LRU tree cache and batched parallel extraction.
Core Idea
Traditional tools (git, sed, IDE) assume a user with hands, eyes, and memory. An LLM has none of these. Malong LiuHe is redesigned around that fact:
| Missing | Design Consequence |
|---|---|
| No hands | Operations must be atomic, undoable, retryable (edit_transaction with rollback and undo journal) |
| No eyes | Output must be structured and self-explanatory (JSON for direct consumption; errors carry suggestion/next_action) |
| No memory | Every call is self-contained (takes workspace_dir); optimistic concurrency with version anchors (read_symbol → write_symbol(base_version) conflict state machine) |
Performance (Measured)
| Metric | Value | Note |
|---|---|---|
| Small-file read P95 | 1ms | 50 runs, warmed |
| Small-file write P95 | 7ms | 30 runs, incl. post-write re-index |
repo_map | 98ms | down from tens of seconds (SQLite index + Rust parsing) |
| Memory | RSS 134MB / 26% | under a real docker --memory=512m cgroup limit |
| Concurrency | 128 concurrent / 256 in-flight requests, zero OOM | 32-way mixed read+write on one hot file, no tearing, DB integrity_check PASS |
| Throughput | ~588 calls/s | single-threaded ceiling — 60–600× real LLM demand |
| Token savings | ↓65.3% | same task 7673 → 2662 est. (primitives) |
| Call reduction | ↓50.0% | 6 calls (legacy) → 3 calls (primitives) |
| Tool-description compression | 44 tools ≈ 1.33k tokens | tiered: core kept, low-freq ≤70 chars, verbose ≤230; detail flows via next_step hints |
| Index throughput | 538 files / 7s | scoped reindex, measured |
| dry_run fidelity | 47/47 | golden-hash comparison across 3 languages, 100% |
| Concurrent writes to same symbol | 16/16 | exactly one winner + one conflict, zero silent overwrites |
Language Support
| Language | Symbol Extraction | Reference Extraction |
|---|---|---|
| JavaScript / TypeScript / TSX / JSX / MTS / CTS | ✓ | ✓ |
| Python | ✓ | ✓ |
| Go | ✓ | ✓ |
| Rust (impl blocks / trait / enum semantics) | ✓ | ✓ |
| C / C++ (incl. headers) | ✓ | ✓ |
| Java | ✓ | ✓ |
| Bash | ✓ | ✓ |
Tool Overview
…
