v1.3 · full toolset · V 0.5.2

A coding agent as calm as a lamb.

LambAI is a small, dependency-light AI agent that talks to any OpenAI-compatible endpoint and calls tools to read, search, build, and edit your project — all in a few small V modules you can actually read.

✓ No third-party deps ✓ Bring your own model ✓ Open & readable
lambai — ./main
model: deepseek-flash  agent: coder
> list the files in this directory
Calling: fs_ls({"dir":"."})
  Result: main.v api/ tui/ web/ ...
AI: There are 7 entries here: the
V entry point, three modules, and
the docs.
> 
Features

Everything an agent needs. Nothing it doesn't.

LambAI keeps the surface small and the behaviour legible, so you can trust what it does and understand why.

🔌

OpenAI-compatible

Point it at Ollama, OpenAI, OpenRouter, or any endpoint exposing /v1/chat/completions. Register several and pick one at startup.

🧰

Real function calling

Tools declared with JSON-schema parameters and returned as structured tool_calls, chained for up to 10 rounds per turn.

📁

Full filesystem toolset

Read with offset/limit, write, edit, grep, glob, tree, git, build/test, todos, memory, and web_fetch — all size-capped.

📖

Readable by design

A reference implementation of an agent loop in a few small V modules. No frameworks, no magic — read it in an afternoon.

🪶

Zero dependencies

V standard library plus curl. No node_modules, no lockfile archaeology, no supply-chain surprises.

🛡️

Safe by default

Agent profiles with tool allowlists, a write policy with confirmation, and protected paths the agent can never touch.

Toolset

A full toolbox, domain-prefixed.

Tools are namespaced by domain — files, search, shell, dev, todos, memory, web, and agent control. Limit the menu per project with a one-line config.

.lambai/config.json

{
  "tools": ["fs_read", "fs_write",
            "fs_edit", "search_grep"],
  "max_tool_output": 4000
}
fs_read fs_write fs_edit search_grep search_glob search_tree shell_run dev_git dev_build dev_test todo_write memory_save web_fetch agent_ask agent_finish …and more
How it works

Three steps from clone to shipped.

  1. 01

    Point it at a model

    Drop endpoints into .lambai/models.json or use the built-in defaults. Keys come from the environment and are never written to disk.

    /model deepseek-flash
  2. 02

    Ask in plain language

    The agent plans, calls tools, reads results, and loops until the job is done — up to 10 tool rounds per user turn.

    > list the files in this directory
  3. 03

    Review and ship

    Every write is confirmed before it lands. Approve once, all turn, always, or lean on the read-only profile.

    [y]es / [n]o / [a]ll / [A]lways
LambAI lamb mascot

Ready to herd some code?

Join the early flock. Get updates, a walkthrough, and a lamb of your own.