$ show callstackincubator/cali
Cali is a TypeScript-based CLI application designed for React Native and Expo development teams. It functions as an AI-powered orchestration layer that automates mobile quality assurance, code review, and performance analysis. The system operates by ingesting repository context (PR data, mobile artifacts) and executing structured agent loops that interact with platform-specific tools (Android/iOS SDKs) via the Vercel AI SDK. It supports both local execution and CI environments (GitHub Actions, EAS), generating structured reports in JSON and Markdown formats. Architecturally, it follows a monorepo pattern with distinct packages for the core CLI (packages/cali) and platform-specific tool wrappers (packages/tools). The core logic relies on a role-based command structure where specific tasks (QA, Review, Dev) are delegated to specialized agent roles. Data flow is deterministic, moving from context resolution through tool execution to report publishing, ensuring consistent behavior across different environments. The tool distinguishes itself by managing complex mobile development contexts, such as artifact parsing (APK/IPA) and device management, which are typically brittle in automated workflows. It integrates skill discovery for AI agents and supports multiple output publishers (local file, Vercel Blob). While it solves a specific niche problem effectively, it introduces dependencies on external binaries and rapid-versioning AI SDKs that require careful maintenance.
The LLM identified 2 files worth highlighting for reuse:
Implements a robust context resolution pattern that merges file-based, CLI, and CI environment data into a unified schema. This component abstracts the complexity of detecting the execution environment (local vs. GitHub Actions vs. EAS) and normalizes inputs like repository metadata and mobile build artifacts. It is reusable for any CLI tool requiring environment-aware configuration without hardcoding specific CI provider logic.
Orchestrates the AI agent interaction with available tools in a structured loop. It manages the state of the agent's thought process, tool invocation, and result processing, decoupling the AI logic from specific task implementations. This pattern demonstrates non-obvious skill in managing asynchronous agent workflows and error handling within an LLM-driven execution context.