2.0 KiB
2.0 KiB
Yutu
Go CLI + MCP server + Agent for YouTube.
Quick Reference
- Build:
go build -o yutu .orbazel build //... - Test:
go test ./...orbazel test //... - Smoke Tests:
./scripts/command-test.sh - Entry Point:
main.go
Directory Index
| Directory | Description |
|---|---|
| cmd/ | CLI command definitions and MCP tool bindings |
| pkg/ | Core domain logic and shared infrastructure |
| internal/ | Internal tools (docgen, skillgen) |
| scripts/ | Utility scripts and smoke tests |
| docs/ | Project documentation |
Documentation
- docs/FEATURES.md — Feature overview
- docs/HOW_TO_TEST.md — Testing guide
- docs/CONTRIBUTING.md — Contribution guidelines
- docs/CODE_OF_CONDUCT.md — Code of conduct
Conventions
- Secrets:
client_secret.jsonandyoutube.token.jsonin root (standard for this project). - Build System: Bazel is primary, standard Go tools also work.
- BUILD.bazel files are auto-generated — do NOT create or edit them manually. Run
bazel run //:gazelleto regenerate. - After changing dependencies:
bazel run @rules_go//go -- mod tidy -v && bazel mod tidy. - See docs/CONTRIBUTING.md for the full list of useful build/test/release commands.
Adding a New YouTube Resource
Every new resource package under pkg/ and cmd/ must also be registered in:
main.go— add a blank import (_ "github.com/eat-pray-ai/yutu/cmd/<resource>").internal/tools/skillgen/main.go— add a blank import and acategoryMapentry.internal/tools/cmdtestgen/main.go— add a blank import.cmd/agent/agents.go— add the resource's MCP tool names to the appropriate agent definition (Aagjefor read-only,Knorretjefor create/update,Daanfor delete).