npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@solderspark/spark-code

v0.1.21

Published

Local-first agentic coding CLI for OpenAI-compatible LLM servers

Downloads

270

Readme

Spark — local-first agentic coding in your terminal

Spark is an agentic coding assistant that runs entirely against your own local LLM server. No cloud, no third-party API keys, no code leaving your machine — point it at an OpenAI-compatible endpoint (built for vLLM serving Qwen3.6, and it adapts to other local models) and it reads, edits, and runs your project with your approval.

By Solderspark.

Install

npm install -g @solderspark/spark-code

That gives you the spark command. (Node 20+.)

Quick start

  1. Run a local model server that exposes an OpenAI-compatible API. The easiest is Ollama:
    ollama pull qwen2.5-coder
    (Or LM Studio, vLLM, llama.cpp — anything OpenAI-compatible.)
  2. Run Spark — it auto-detects a running local server (Ollama / LM Studio / vLLM / llama.cpp) and adapts to whatever model it serves:
    spark
    First run walks you through setup if nothing's detected. To point it somewhere specific:
    spark --url http://localhost:8000/v1 --model qwen3.6-35b

That's it — ask a question, and Spark works in your current directory.

Modes

Switch any time with the /mode picker (or /ask, /bypass, /agentic):

| Mode | Tools | For | |---|---|---| | Ask (default) | approve each tool (y/a/n) | staying in control | | Bypass | auto-approve all tools | "stop asking, I'm watching" | | Agentic | auto-approve + run unattended | long autonomous tasks | | Plan (/plan) | plan first, then execute | risky multi-step work |

What it does

  • A real agent loop — the model calls tools (Read, Grep, Glob, Edit, Write, Bash, subagents), the harness runs them, results feed back, repeat.
  • Undo/undo reverts the last turn's file changes (and deletes files it created). Every turn is checkpointed.
  • Self-correction — after it says it's done, Spark runs your typecheck/build on the changed files and fixes what it broke before stopping.
  • Safety nets — catastrophic shell commands (disk wipes, curl | sh, fork bombs) are hard-blocked even unattended; edits preserve a file's real encoding (UTF-8 / BOM / UTF-16); a loop guard steers out of doom-loops.
  • Capability detection — Spark probes the served model and adapts (context window, tool-calling, parallel tools, reasoning), so non-qwen local models work too, with safe defaults.
  • MCP — add custom/external tools (browser automation, databases, …) via MCP servers in ~/.spark-code/mcp.json or ./.spark-code/mcp.json.
  • Sessions/session save, resume with spark --resume <id>.
  • Project memory & prompt layering./SPARK.md and file-based slash commands in ./.spark-code/commands/.

Useful flags

| Flag | Description | |---|---| | -u, --url <url> | OpenAI-compatible server base URL | | -m, --model <name> | Model id (the one your server serves) | | --think | Enable the model's thinking/reasoning for this session | | --resume <id> | Resume a saved session | | --print <prompt> | Run one turn non-interactively, print to stdout, exit (scriptable) | | --allow-all | With --print, auto-approve every tool (for CI) |

Run spark --help for the full list, and /help inside the session for slash commands. /diagnose checks your server connection and the model's capabilities.

Supported models

Tuned for qwen3.6-35b (A3B MoE, sequential tool calls) and qwen3.6-27b (dense, parallel tool calls) via vLLM, but capability detection lets other OpenAI-compatible local models work with conservative defaults. Set --model / sparkCode.model to the id your server actually serves; /diagnose confirms it.

Privacy

Everything runs against the server you configure. Spark sends your prompts and the files it reads to that endpoint only. No telemetry, no third-party service.

Also available for VS Code

Prefer a GUI? Spark is also a VS Code extension (same engine, a chat panel with inline diffs, grounded Plan mode, and a context visualizer) — search "Spark" in the VS Code Marketplace.


© Solderspark · https://solderspark.com · See LICENSE for terms.