GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - HowProgrammingWorks/Agent: Small, modular coding-agent harness for Node.js

BranchesTags
Open more actions menu

Latest commit

 

History

16 Commits
16 Commits

Folders and files

NameName
Last commit message
Last commit date
agent
agent
 
 
ide
ide
 
 
tools
tools
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.prettierignore
.prettierignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
eslint.config.js
eslint.config.js
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
prettier.config.js
prettier.config.js
 
 
start.js
start.js
 
 

Repository files navigation

tiny-agent

small, modular coding-agent harness for Node.js. It demonstrates the core loop behind agentic coding tools without hiding the mechanism behind a framework

Run

Node.js 20+ and an API key for any OpenAI-compatible Chat Completions provider.

npm install
npm start

First run copies agent/config.template.js to config.js. Fill in API_KEY, BASE_URL, and MODEL. Open another directory with npm start -- /my-project.

Loop

user task
   ↓
model response
   ↓
tool calls? ── no ──→ final answer
   │
  yes
   ↓
approve + execute local tools
   ↓
append tool results
   ↓
model response again

Tools are read, write, edit, bash, grep, glob, delete, patch, check, fetch, and todo. Specs live in tools/{name}/{name}.json. The LLM client is the OpenAI SDK; point it at any compatible endpoint.

start.js            terminal IDE
agent/agent.js      tool loop
agent/llm.js        OpenAI Chat Completions client
ide/                tree, editor, shell, chat
tools/{name}/       {name}.json + {name}.js
  • Agent loop
  • Set of tools
  • Any OpenAI-compatible provider via BASE_URL in config.js
  • Configurable model via MODEL and FALLBACK_MODELS
  • File workspace containment checks, including symlink-aware checks
  • Interactive approval before writes, edits, and shell commands that leave the git repo
  • In a git repo, in-project write/edit/bash calls are auto-approved; outer paths still prompt
  • Step limit and tool-output truncation

Safety

File tools stay inside the workspace. bash does not: it can reach the network and paths outside the project. In a git repo, in-project writes, edits, and bash auto-approve; otherwise you are prompted. This is not a sandbox. Do not run an untrusted task on a valuable host.

License

Copyright (c) 2026 How.Programming.Works contributors. Licensed under the MIT License.

About

Small, modular coding-agent harness for Node.js

Topics

agentaiharnessllm

Resources

Readme
MIT license
Activity
Custom properties

Stars

46 stars

Watchers

0 watching

Forks

6 forks
Report repository

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.