jpmschweitzerandClaude 9f5e331d11 build(ci): move the pre-push gate into the Makefile
The hook carried ~50 lines of gitleaks logic and a comment explaining it was
self-contained because "this repo has no Makefile". It has one now, so the
reason is gone and the arrangement is backwards: a hook is a trigger, and
logic belongs where it can be read, run by hand, and changed under review.

.githooks/pre-push is now a byte-identical shim onto `make pre-push` in every
repo in the workspace. The scan itself moves to ci/secrets.sh unchanged, and
`make secrets` runs it on its own.

The call surface is identical everywhere; what it runs is not, and should not
be — each repo gates what it actually has. That is the point of standardising
the name rather than the contents: nobody has to read a repo to find out how
to check it.

secrets runs first, deliberately. It is the only failure here that cannot be
undone by fixing it afterwards — a failed lint costs another commit, a pushed
credential is cached and indexed whether or not it is later deleted.

Some of these gates fail today, on lint debt that predates them, and they are
left wired anyway. The board was measured once and written down in T-56
instead of being worked around here. Narrowing each gate to whatever already
passes would produce a gate that reports success for doing nothing, which is
the failure this workspace keeps rediscovering.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-09 18:57:22 +02:00
2026-01-15 07:54:33 +01:00
2026-01-15 07:54:33 +01:00

Webber - Multi-Agent AI Development System

A Claude Code-inspired development assistant powered by local LLMs via Ollama.

Features

  • 3 Agents - Explore (read-only), Plan (architecture), Task (orchestrator)
  • 8 Tools - File read/write/edit, glob, grep, bash, web search
  • Conversations - Multi-turn memory with context summarization
  • Streaming - Real-time response display
  • Self-hosted - Runs on your own hardware with Ollama

Structure

This is a monorepo containing three subprojects:

Directory Description
webber-api/ FastAPI backend server with agent orchestration
webber-cli/ Command-line client for interacting with the API
webber-sandbox/ Test project for functional testing

Additional Directories

Directory Description
sandbox-templates/ Reusable project templates for the sandbox
.gitea/workflows/ CI/CD workflows for releases

Quick Start

1. Start the API Server

cd webber-api
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
./wakeup.sh

2. Set Up the CLI

cd webber-cli
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .

# Test connection
webber-cli status

3. Explore with Webber

# One-shot exploration
webber-cli explore "find all bugs in the code" -d /path/to/project

# Interactive chat
webber-cli chat -d /path/to/project

Available Tools

Tool Description
read_file Read file contents with line numbers
glob_files Find files by pattern
grep_content Search file contents with regex
bash_readonly Safe bash commands (ls, git status, etc.)
edit_file Find-and-replace editing
write_file Create/overwrite files
bash Full bash with safety controls
web_search Search web via SearXNG

Agents

Agent Purpose Tools
Explore Fast codebase navigation, search Read-only (glob, grep, read, bash_readonly)
Plan Design implementation strategies Read-only (same as Explore)
Task Autonomous multi-step execution All tools + spawn_agent

API Endpoints

# Stateless agent execution
POST /agents/run          # Execute agent, get response
POST /agents/stream       # Execute with SSE streaming
GET  /agents/             # List available agents

# Stateful conversations (multi-turn memory)
POST /conversations/              # Create conversation
GET  /conversations/              # List conversations
POST /conversations/{id}/messages # Add message, get agent response

Versioning

This project uses prefixed tags for independent release cycles:

  • api/v0.4.0 - Triggers API Docker build and deployment
  • cli/v0.1.0 - Triggers CLI installer build (future)

Requirements

  • Python 3.12+
  • Ollama running with gemma4:e2b model
  • Docker (for production deployment)
  • SearXNG (optional, for web search)

Documentation

  • CLAUDE.md - Agent development guidelines (repo-wide)
  • webber-api/docs/COVERAGE.md - Feature coverage and roadmap
  • webber-api/docs/architecture.md - System architecture
  • webber-cli/README.md - CLI usage guide

License

MIT

S
Description
Mrs. Webber
Readme
522 KiB
2026-08-11 16:30:09 +02:00
Languages
Python 97%
Shell 2%
Makefile 0.9%
Dockerfile 0.1%