The Problem

Developers who work with multiple LLM providers (Anthropic, OpenAI, Gemini, etc.) often juggle separate CLI tools, each with its own auth flow and launch scripts. Switching providers, keeping environment variables in sync, and handling local proxying becomes a manual, error‑prone process.

What This Does

Claw Dev bundles a terminal‑based coding assistant that abstracts provider selection behind a single launcher. The top‑level entry point is Leonxlnx-claude-code/package/cli.js, which parses the command line and forwards the request to the appropriate provider module (e.g., src/utils/model/providers.ts). Provider‑specific prompts live in src/bridge/ and src/commands/ – for example, src/commands/agents/index.ts implements the agents command, while src/commands/install-github-app/index.ts drives the GitHub‑App installer wizard.

The repository also ships a pre‑built Anthropic‑compatible proxy (src/anthropicCompatProxy.ts) that lets OpenAI, Gemini, Groq, OpenRouter, Ollama, Copilot and z.ai share the same request pipeline. Environment variables such as ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, etc., are read by src/utils/envUtils.ts and injected into the proxy at runtime.

How It Is Wired

Execution begins in Leonxlnx-claude-code/package/cli.js, which loads the command registry in src/commands.ts. The CLI dispatches to a handler file (e.g., src/commands/agents/index.ts). Most handlers eventually call getAPIProvider (defined in src/utils/model/providers.ts) to obtain a concrete provider object. getAPIProvider is invoked from seven distinct places, making it a high‑fan‑in function.

From the provider, the request flows through the compatibility proxy (src/anthropicCompatProxy.ts) and into the low‑level transport layer in src/cli/transports/ (e.g., WebSocketTransport.ts, SSETransport.ts). Network I/O is performed by the single outbound function getSecureStorage (in src/utils/secureStorage/index.ts) and by the proxy’s HTTP client; both are the only functions that reach outside the process.

Key utility modules act as hubs:

  • src/utils/debug.ts – imported by 213 modules (instability 0.03, part of a circular import).
  • src/utils/errors.ts – imported by 128 modules (instability 0).

These hubs amplify change impact; any modification can ripple through a large portion of the codebase. A documented import cycle involves src/utils/debug.ts, src/utils/slowOperations.ts, and src/types/command.ts (19 high‑severity cycles). Breaking these cycles—e.g., moving shared types to a dedicated types/ module—would reduce coupling.

The internal call graph shows a handful of functions with the widest reach: delete (10 callers), all (7 callers), and getAPIProvider (7 callers). Most business logic resides in the src/bridge/ and src/commands/ trees, while low‑level helpers (src/utils/fileRead.ts, src/utils/generators.ts) provide I/O and iterator utilities.

How To Use It

# Clone the repo
git clone https://github.com/moses-y/claw-dev.git
cd claw-dev

# Install dependencies (npm is the declared package manager)
npm ci

# Copy the example env file and fill in the required keys
cp .env.example .env
# Edit .env: set ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.

# Run the launcher (the CLI entry point)
node Leonxlnx-claude-code/package/cli.js --help
# Example: start a Claude session
node Leonxlnx-claude-code/package/cli.js start --provider anthropic

The package.json in the root defines the scripts used for building and testing; running npm test will execute the existing 21 test files.

Real‑World Use

A CI pipeline that generates code reviews could invoke the assistant as part of a pre‑commit hook:

# In .git/hooks/pre-commit
node Leonxlnx-claude-code/package/cli.js review --files "$(git diff --cached --name-only)"

The hook calls the review command (src/commands/review/index.ts), which ultimately reaches getAPIProvider and talks to the configured LLM, returning suggestions that the developer can apply before committing.

Code Health & Issues

  • HIGH – No license – repository lacks a LICENSE file; reuse is legally blocked.
  • HIGH – No CI pipeline – 1928 source files with no .github/workflows or other CI config; changes are not automatically verified.
  • MEDIUM – Dependabot missing – three manifest files (package.json, package-lock.json, Leonxlnx-claude-code/package.json) have no automated dependency update bot.
  • MEDIUM – Large binaries – Leonxlnx-claude-code/anthropic-ai-claude-code-2.1.87.tgz (16.5 MB) and other binaries (>5 MB) inflate clone size; move to Git LFS or external storage.
  • MEDIUM – Sparse tests – 15 test files cover <1 % of the codebase; high‑fan‑in modules like debug.ts lack direct test coverage.
  • LOW – Missing repo conventions – no .editorconfig, .gitattributes, or formatter config, risking inconsistent style across contributors.

The Bottom Line

Claw Dev delivers a unified CLI front‑end for many LLM providers, with a clear provider‑selection path and a reusable proxy layer. However, the codebase suffers from high coupling (hub modules, import cycles) and lacks basic production safeguards (license, CI, test coverage). It is suitable for teams that need rapid multi‑provider access and are prepared to invest in refactoring the utility hubs and adding CI/ licensing before relying on it in production.