A monorepo for command-line tools and small local apps built in TypeScript, Swift, Go, and Python.
Repository: https://github.com/ponti-studios/toolbox
This repository contains several CLI applications and local proof apps with a shared development workflow. Each tool has its own README.
toolbox/
├── apps/
│ ├── filekit/
│ ├── xkit/
│ ├── mediakit/
│ ├── datpiff/
│ ├── imagekit/ # primary (iconkit/photokit remain as binary aliases)
│ ├── agentkit/
│ ├── calendar/
│ ├── raycast-gallery-dl/
│ └── openspeek/
├── packages/
│ └── files/
├── docs/
├── tooling/
└── justfile
| Tool | Language | Description |
|---|---|---|
| filekit | TypeScript / Node 24 | Generic frontmatter and file utilities |
| xkit | Go | Paid destructive X/Twitter post deletion |
| mediakit | Swift | Video/audio transcription to Markdown via Apple Speech |
| datpiff | Python | Internet Archive crawler for DatPiff-style mixtape listings |
| imagekit | TypeScript / Bun | Image resizing, optimization, EXIF analysis, date repair, renaming, and web-icon generation |
| agentkit | TypeScript | AI agent usage and cost analytics across Claude Code, Codex, Copilot, and OpenRouter |
| calendar | TypeScript / macOS | Apple Calendar CLI for managing calendars and events via EventKit |
| raycast-gallery-dl | TypeScript / Raycast | Download Instagram carousels and web galleries via gallery-dl |
| openspeek | TypeScript / Bun | Markdown-to-audio narration using OpenRouter TTS and local fallbacks |
just buildjust build currently builds FileKit, AgentKit, ImageKit (macOS, when Bun is
available), MediaKit on macOS, and XKit when Go is available. DatPiff, ImageKit, and OpenSpeek use their app-local commands below.
just installThis installs FileKit and AgentKit into the active mise shim directory. It does not install
every app in the repository.
just testjust test runs FileKit’s test suite and XKit’s Go tests when Go is available.
For app-local tests:
cd apps/imagekit && bun install --frozen-lockfile && bun run typecheck && bun run test
cd apps/openspeek && bun install && bun run typecheck && bun run test
cd apps/datpiff && python3 -m datpiff --helpImageKit is macOS-specific because it uses sips. Its fixture corpus and reproducible manual
binary sweep live in apps/imagekit/tests/fixtures/README.md. iconkit and photokit remain as compatibility aliases for imagekit.
just smoke-clis
just test-clis
just test-cli filekitThe checked-in manifest at tooling/cli-test-manifest.json is the source of truth for the
currently CI-managed CLI checks: FileKit, AgentKit, XKit, and MediaKit. It defines:
- tool metadata (
name,language,path, and CI OS) - build/unit/smoke/integration/release-smoke commands
- whether a CLI is allowed to rely on network or system integration during automation
CLI fixtures should stay tool-local. Use app-owned fixture directories such as
apps/filekit/tests/fixtures and apps/imagekit/tests/fixtures instead of introducing
machine-local dependencies.
The CLI runner activates mise automatically when it is available so local Go and other managed
toolchains match the versions you have configured. Swift package automation is executed through
xcrun swift to use the active Xcode toolchain instead of any ambient shell shim.
npx @ponti-studios/filekit frontmatter walk
cd apps/datpiff && python3 -m datpiff scrape archiveorg --help
cd apps/xkit && go run . delete-posts --help
cd apps/imagekit && bun run build:test && .test-bin/imagekit --help
cd apps/openspeek && bun run build && node dist/openspeek.js --helpcd apps/mediakit && swift build
cd apps/mediakit && swift run mediakit -- --help
just install-mediakit- Release tags follow the pattern
<cli>-v<version> filekitis published to npm as@ponti-studios/filekitimagekitis published to npm as@ponti-studios/imagekit(iconkit/photokitremain as binary aliases)openspeekis published to npm as@ponti-studios/openspeek- Node/Bun tools use their app-local lockfiles
- Swift tools build from their package directories
xkitis a standalone Go CLI built fromapps/xkit- GitHub releases and Homebrew formula templates are wired to
ponti-studios/toolboxwhere a release workflow exists.
- Tool-specific command references live in each app's
README.md - The manifest-driven CLI test runner lives at
scripts/test-clis.sh - App-specific fixtures and manual workflows live with the corresponding app.
MIT