ollama-local-coding-agent

agent
Security Audit
Warn
Health Warn
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in src/cli/loadEnv.ts
  • process.env — Environment variable access in src/cli/main.ts
  • process.env — Environment variable access in src/model/config.ts
  • network request — Outbound network request in src/model/ollamaClient.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Private, offline AI coding agent for local Qwen models via Ollama — zero dependencies, real tools, multi-agent. Your code never leaves your machine.

README.md
qwen-harness tagline

tests zero dependencies no build step offline license Apache-2.0 ollama qwen typescript

Turn a model running on your own machine into a real, tool-using software agent.

No cloud. No API keys. No telemetry. Your code never leaves your computer.

📘 Use it  ·  🧩 How it works  ·  🤝 Contribute  ·  ⚖️ License


🌟 Why qwen-harness?

  • 🔒 Truly private & offline. The model, your files, and every transcript stay on
    your machine. Zero network egress, no accounts, no API keys, no vendor lock-in.
  • Zero dependencies, zero build step. Pure TypeScript run directly by Node —
    clone, point it at Ollama, go. Nothing to install from a registry.
  • 🤖 A real agent, not a chatbot. It reads, searches, writes, and edits files and
    runs commands in a permission-gated read → decide → act → observe loop —
    including multi-agent delegation, long-term memory, and resumable sessions.
  • 🛡️ Safe by default. Every action passes a permission gate, and clearly
    dangerous commands are always blocked.
  • 🪶 Built for small local models. Argument validation + repair, malformed
    tool-call recovery, and automatic context compaction make modest models reliable.
  • Battle-tested. 162 automated tests, plus a mandatory secret scan on every run.

✨ What it can do

🧩 Use real tools (read · grep · write · edit · multi-edit · bash · list-models)  • 
⚡ run independent tool calls in parallel  • 
👥 split work across 2 parallel agents  • 
🧠 remember facts across chats  • 
💾 resume any conversation  • 
🌊 stream answers live  • 
🔁 switch models on the fly  • 
🛑 cancel a running task with Ctrl+C  • 
🪶 auto-compact long chats.

🎯 Built for

Developers who want a private, air-gapped coding agent · teams avoiding cloud AI
costs and data exposure · anyone running local LLMs who wants real actions, not
just chat · learners who want a clean, readable agent architecture to study.

📖 Documentation

This README is the front door. Everything else lives in a focused document:

Looking for… Go to
Install, run & use it — step-by-step, plain-English USER-GUIDE.md
Architecture + data-flow diagram, project structure, technology choices, dependencies THIRD_PARTY_NOTICES.md
Contributing & the dev/test workflow CONTRIBUTING.md
License (Apache-2.0) LICENSE

🚀 Try it in 60 seconds

ollama serve     # start your local model server
npm start        # launch the agent (interactive)

Then just type what you want in plain English. Full walkthrough, options, and
examples → USER-GUIDE.md.

💡 Using it to the fullest

The small things that make it genuinely useful day to day:

🗣️ It holds the whole conversation. In the interactive REPL the agent remembers
everything said so far, so follow-ups just work:

> Read config.ts and tell me what it does.
> Now add a comment at the top explaining that.   ← it knows "that" = config.ts

⏸️ Stop now, continue later — right where you left off. Every chat is saved and the
REPL prints a session id at startup:

npm start -- --list-sessions       # find a past chat
npm start -- --resume <id>         # reopen it with full context restored
# inside the REPL:  /sessions  (list)    /new  (start fresh)

🧠 It remembers across different chats. Tell it something durable and it comes back
later, even in a brand-new conversation:

> Remember that our build output goes in the dist folder.
# …a new chat, another day:
> Where does the build output go?        →  "the dist folder"

👥 Hand a big job to a team (max 2 at once).

npm start -- --multi "add a header comment to every file in src, in parallel"

🔁 Switch brains for the task — fast 7B for everyday work, the bigger model for hard
problems, mid-chat:

/model qwen3-coder:30b        (/model qwen2.5-coder:7b to switch back)

🎚️ Decide how often it checks with you:

/mode acceptEdits   # stop confirming each edit (dangerous commands still blocked)
/mode plan          # look only, change nothing
/mode default       # ask before every change (the safe default)

⚡ One-and-done for a quick task:

npm start -- "list the files here and tell me which is largest"

⌨️ REPL commands: /model <tag> · /mode <mode> · /models · /sessions · /new · /exit

Prefer a full, step-by-step walkthrough? → USER-GUIDE.md.

⭐ At a glance

162 tests · 0 dependencies · no build step · 100% offline · Apache-2.0 licensed.

🔎 Keywords

local LLM agent · offline AI coding assistant · Ollama · Qwen ·
qwen2.5-coder · qwen3-coder · autonomous coding agent · tool-using LLM ·
agentic loop · ReAct · function calling · multi-agent · zero-dependency ·
TypeScript · Node.js · private AI · on-device AI · self-hosted AI ·
no API key · terminal / CLI AI · local inference · code generation ·
developer tool

💡 For real discoverability, also set these as the repository Description and
Topics in GitHub's “About” panel — that, plus this README, is what search engines
and GitHub search index.

Apache-2.0 Licensed · Designed to run entirely on your machine 🖥️

Reviews (0)

No results found