Code Agent for Jira Tasks

Turn Jira tickets into
precise code context

Semantic search over your repository. Finds exact functions, classes, and dependencies needed for any task — then packs them into AI-ready XML.

~3s Search time
AST Block-level index
384d Vector embeddings
bash — crang7
$ crang7 index ./project
📦 repomix-output.xml generated
🔍 Found 233 files, 220 AST blocks
💾 LanceDB: 220 blocks, 125 files indexed
✅ Index ready (commit: a1b2c3d)

$ crang7 search "add Google OAuth2 auth"
vector blocks: 40, files: 10
after reranking: 15
+ 2 related files via import graph
✅ XML: repo-context-1716123456789.xml
Files: 5 (primary: 3, related: 2)
$

Pipeline

From raw repository to AI-ready context in 4 stages

Ingest

Respects .gitignore. Lazy repomix XML. Collects only changed files on re-index.

Parse

TypeScript AST extractor. Functions, classes, interfaces, types. Smart chunking for large functions.

Embed

all-MiniLM-L6-v2 (384d) via transformers.js. SHA256 cache. Cross-encoder reranking with ms-marco.

Output

Repomix-compatible XML. Import graph expansion. [RELATED] markers. Truncation where code is irrelevant.

Why crang7

Built for teams that ship fast with AI assistance

Incremental Indexing

Only re-indexes changed files via git diff. Full rebuild takes seconds, not minutes. SHA256 embedding cache persists across runs.

AST-Level Precision

Not file-level — function-level. Finds the exact `authenticate()` method, not the entire 2000-line auth module. Chunks large functions by control flow.

Cross-File Graph

Resolves imports and call references automatically. Pulls in type definitions, utilities, and middleware your task depends on — even if they don't match the query semantically.

Local & Private

Everything runs on your machine. No API keys, no cloud uploads, no data leakage. transformers.js + LanceDB are fully local.

Repomix Native

Output follows the standard repomix XML format. Kimi, Claude, GPT — all parse it natively. No custom prompts needed.

Scope Filtering

Index and search within specific directories. `--scope src/auth` keeps focus tight when your codebase grows.

~45MB Binary

Includes Node.js runtime, transformer models, and LanceDB. Download and run.

Cross-Platform

Linux, macOS, Windows. Same CLI, same behavior everywhere.

What Kimi receives

Not walls of code. Only the exact blocks needed for your Jira task, with context preserved.

  • Relevant functions with signatures
  • Imports for dependency understanding
  • [RELATED] files pulled via graph
  • Truncation markers for skipped code
  • Chunk markers for large functions
  • Semantic relevance scores per block
repo-context-1716123456789.xml
<file path=<"src/auth/providers.ts">
// ===== imports =====
import { OAuth2Client } from 'google-auth-library';
import { User } from '../models/user';
import { signJwt } from '../utils/jwt';

// === function: createGoogleStrategy (combined: 0.891) ===
export function createGoogleStrategy(config: OAuthConfig) {
return new OAuth2Client(config.clientId, ...);
}

// ... [340 chars omitted] ...

// === class: GoogleAuthProvider (combined: 0.854) ===
export class GoogleAuthProvider { ... }
</file>

<file path=<"src/utils/jwt.ts">
// === function: signJwt [RELATED] (dist: 0.234) ===
export function signJwt(payload, expiresIn = '7d') { ... }
</file>

Ready to ship faster?

Stop copy-pasting entire files into AI chat. Give your agent exactly what it needs.

npm install -g crang7