← Back to Daily Builds

Daily build note · May 11, 2026

Agent Ledger

A lightweight AI tool and agent inventory for founders, MSPs, and lean IT teams.

AI Tools Runnable local MVP built Public demo coming soon

What shipped

Agent Ledger is a runnable local MVP for AI tool inventory and cleanup planning. It includes:

  • A dependency-free Python web server in app.py.
  • A local inventory/scoring/export package in agent_ledger/.
  • A static browser workbench in static/.
  • Seed CSV and JSON data in samples/.
  • A CLI path for demo creation, imports, repo scans, and exports.
  • A smoke script in scripts/smoke.py.
  • Required markdown and CSV/JSON export artifacts generated under exports/current.

Architecture

  • Local-first storage: the active workspace is a plain JSON file at data/workspace.json.
  • No external APIs or secrets: demo mode, scoring, scanning, and exports run entirely locally.
  • Python stdlib only: http.server, csv, json, and filesystem utilities keep setup simple.
  • Thin frontend: the browser UI renders dashboard views, import controls, editable ledger fields, scan controls, and export links over the local API.
  • Deterministic scoring: risk and value scores are generated from explicit rules in agent_ledger/core.py, with risk reasons retained for review and export.
  • Conservative repo scanning: .env files are reduced to variable names before signal matching, avoiding secret value storage.

Trimmed scope

  • No hosted backend, login, accounts, teams, billing, or permissions.
  • No direct Google Workspace, Microsoft 365, Slack, Okta, GitHub, finance, or SaaS admin integrations.
  • No drag-and-drop polish, ZIP bundling, or editable scoring weights.
  • No policy enforcement or automated permission changes.
  • No guarantee of complete AI discovery. Imported, scanned, and survey-discovered evidence is visible and should be reviewed by a human.

Limitations

  • CSV normalization is forgiving but not exhaustive for every finance or SaaS export format.
  • Expense matching uses simple vendor/name matching and may create duplicate rows when vendor names are vague.
  • Repo scanning is static pattern matching. It finds useful signals but does not prove runtime usage or permission scope.
  • The web app asks for repo paths as text because browsers cannot freely read local directories without additional packaging.
  • Scoring is intentionally deterministic and simple. It should be tuned with real audit outcomes before production use.
  • Exports currently write to exports/current and overwrite prior files in that folder.

Suggested next steps

  • Add a review queue for merging duplicate tool rows.
  • Add editable scoring weights and show point-by-point score explanations in the UI.
  • Add a downloadable ZIP export.
  • Add CSV template downloads from the UI.
  • Add a small local desktop wrapper or file picker for safer repo selection.
  • Add tests for scanner patterns, import normalization, and recommendation edge cases.
  • Add optional connectors later, but keep the current local/demo mode as the default safe path.