$ show flameOnYou/callx
callx is a Node.js CLI tool that serves as a unified runtime switcher and configuration manager for AI coding assistants like Claude Code and OpenCode. It allows users to define multiple AI 'sprites' (agent configurations) with different providers, models, skills, and MCP servers, all managed through a single `~/.config/callx` directory. The system provides two entry points: the `call` command for quick invocation of sprites, and `callcli`, a full-featured TUI built with Ink and React for managing providers, sprites, skills, MCP servers, and git worktrees. The architecture is a monolith CLI application with a clear separation between runtime utilities (`lib/runtime.js`), git worktree helpers (`lib/worktree.js`), and the TUI frontend (`lib/callcli/app.mjs`). The runtime module handles all configuration file I/O, provider normalization, skill syncing via symlinks, and MCP server configuration generation for both Claude Code and OpenCode formats. The TUI provides a Monokai-themed interface with list-based navigation, field-level editing, and multi-select for skills and MCP servers. Key data flows include: reading `providers.json` for API keys and endpoints, reading sprite `config.json` for CLI type and model selection, syncing skill packs from `skillpacks/` to sprite-specific `skills/` directories via symlinks, and generating MCP configuration files from `mcpservers/` definitions. The tool also integrates with git worktrees, providing an interactive flow to create new branches and worktrees with suggested naming conventions. External dependencies are minimal: Node.js 18+, Ink and React for the TUI, and the target AI CLI tools (opencode-ai, @anthropic-ai/claude-code).
The LLM identified 3 files worth highlighting for reuse:
Core runtime module that manages all configuration file operations for the callx ecosystem. It handles reading/writing providers.json, sprite configs, skill syncing via symlinks, MCP server definition normalization, and configuration generation for both Claude Code and OpenCode. The module is self-contained with no internal dependencies beyond Node.js built-ins, and its functions (getProviders, saveProviders, syncSkills, syncMcp, buildClaudeMcpJson, buildOpenCodeConfig) could be extracted and reused in any Node.js project that needs to manage multi-provider AI configurations with skill and MCP server orchestration.
A self-contained set of git worktree helper functions that parse git porcelain output, list local branches and worktrees, suggest branch names with timestamp-based naming conventions, and create worktrees for both new and existing branches. It demonstrates robust error handling, proper git command execution via spawnSync, and clean parsing of git's --porcelain format. This module has zero internal dependencies and could be extracted into any Node.js project needing git worktree automation, such as CI/CD pipelines or developer tooling.
A well-crafted Python email sender that uses msmtp for delivery. It handles MIME message construction with proper RFC 2231 encoding for attachment filenames (supporting non-ASCII characters), implements exponential backoff retry logic, validates attachments before sending, and normalizes recipient addresses. The module is fully self-contained with no external Python dependencies beyond the standard library, and its send_email function could be reused in any Python project that needs reliable email sending via msmtp.