Monorepo for trusted Letta Code mods maintained by kaaloo, plus the shared CI and security tooling used to publish them.
| Package | Description |
|---|---|
@kaaloo/flows |
A Letta-native mod for authoring and running multi-agent flows. Describes a task as markdown with YAML frontmatter, fans it out across parallel subagents, and synthesizes the results. |
New packages land under packages/* with their own package.json, README.md, and (where applicable) MOD.md.
Each package is a Letta mod and is installed individually from its directory. To build and verify a package locally you also need Bun installed (the package build/verify scripts invoke bun build); the workspace-root npm install is enough for the secret- and dependency-scanning hooks alone.
git clone https://github.com/kaaloo/agent-mods.git
cd agent-mods
# Install the workspace root (currently only used for dev tooling: gitleaks, cve-lite, husky)
npm install
# Install and enable the flows mod
cd packages/flows
npm install
letta install .Then reload mods inside Letta Code with /reload.
See each package's README for package-specific usage.
.
├── packages/
│ └── flows/ # @kaaloo/flows mod (TypeScript source, bundled JS, tests)
├── docs/ # Design notes and implementation plans
├── .github/
│ ├── prompts/ # System prompts used by the CI agent
│ ├── scripts/ # Helpers invoked from workflows
│ └── workflows/ # GitHub Actions workflows
├── .husky/ # Local git hooks (pre-commit, pre-push)
├── .gitleaks.toml # Allowlisted secrets for the secret scanner
└── package.json # Workspace root manifest (dev tooling only)
This repo ships two layers of supply-chain guardrails at the local git-hook boundary. The secret-scanning layer is also enforced server-side; the dependency-scanning layer is local-only for now.
- Local —
.husky/pre-commitrunsgitleaks protect --staged --redactagainst every commit. - Server-side —
.github/workflows/gitleaks.ymlrescans pushes and pull requests with full git history. This is defense-in-depth againstgit commit --no-verifybypasses; it scans repository content and commit history but does not inspect PR title or PR body text. - Configuration —
.gitleaks.tomlat the repo root is the single source of truth for allowlist entries. Prefer a real allowlist entry overgit commit --no-verify.
Useful scripts at the workspace root:
# Scan the entire working tree (baseline / sanity check)
npm run security:scan:secrets
# Scan only the staged diff (matches the pre-commit hook)
npm run security:scan:secrets:staged- Local —
.husky/pre-pushrunscve-lite packages/flows --fail-on highbefore every push. It is wired topre-push(notpre-commit) because cve-lite analyzes the whole lockfile rather than staged filenames. Note that this is a local-only check; there is currently no server-side cve-lite job in CI, sogit push --no-verifywill skip it. - Configuration — lockfile pinning and
cve-lite-cliversion are declared in the rootpackage.jsonandpackages/flows/package-lock.json. Thepackages/flowspath is hardcoded today; adding a new package means updating.husky/pre-pushand the rootsecurity:scan:jsscript to cover it.
Useful scripts at the workspace root:
# Scan the flows workspace for high-severity CVEs
npm run security:scan:jsHooks can be skipped with git commit --no-verify / git push --no-verify, but only after the diff has been reviewed by hand. Prefer adding a real allowlist entry to .gitleaks.toml over bypassing for secret scans.
.github/workflows/gitleaks.yml— secret scan on push and pull request.- Code review is handled via Codex.
Each mod defines its own quality gate. For @kaaloo/flows:
cd packages/flows
npm run check # build + typecheck + tests
npm run verify # verify:bundle + typecheck + tests (fails if the bundled JS drifts from source)MIT. See package.json and individual package manifests.