What Programming Languages Are Used in ag-kit? A Polyglot Architecture Guide
The ag-kit repository is a polyglot codebase that primarily uses TypeScript, JavaScript, and Python, supplemented by JSON, YAML, and Markdown for configuration and documentation.
The ag-kit project by vudovn is a comprehensive toolkit that combines a Next.js documentation site, a Node.js CLI, and AI-powered utility scripts. Understanding what programming languages are used in ag-kit reveals its polyglot architecture designed to leverage the best tools for each component, from static frontend rendering to Python-based security scanning.
Core Programming Languages
The repository leverages three primary programming languages, each serving distinct architectural layers.
TypeScript and TSX
TypeScript forms the core of the documentation site and shared utility libraries. It provides static typing for the Next.js UI and helper modules throughout the web/ directory.
In web/src/lib/utils.ts, utility functions like slugify implement type-safe string transformations:
import { slugify } from '@/lib/utils';
const pageId = slugify('Getting Started with ag-kit');
console.log(pageId); // → getting-started-with-ag-kit
The main application entry point in web/src/app/page.tsx uses TSX (TypeScript JSX) to render React components with full type safety, while web/next.config.ts configures the Next.js build pipeline using TypeScript.
JavaScript (ES Modules)
JavaScript handles the runtime entry point for the CLI and auxiliary scripts in the Antigravity runtime. The project uses modern ESM (ECMAScript Modules) syntax throughout the cli/ directory.
The primary CLI entry point in cli/bin/index.js wires sub-commands and exposes the binary interface:
# Install the package and invoke its binary
npx @vudovn/ag-kit generate:agents
This command executes the entry point defined in cli/bin/index.js, which orchestrates the command-line interface. Additional library code in cli/lib/managed-tree.js implements tree management logic using JavaScript ESM patterns.
Python (3.10+)
Python (version 3.10 or higher) implements utility scripts used by the AI-agent skills, particularly for security scanning and Playwright testing automation. These scripts reside in the .agents/skills/ directory.
The vulnerability scanner in .agents/skills/vulnerability-scanner/scripts/security_scan.py performs dependency-level security audits:
python .agents/skills/vulnerability-scanner/scripts/security_scan.py \
--target ./my-project
Similarly, .agents/skills/webapp-testing/scripts/playwright_runner.py handles automated browser testing workflows for the AI agents.
Configuration and Data Formats
Beyond executable code, ag-kit relies on declarative formats for configuration and content management.
JSON and YAML
JSON stores package definitions, manifest files, and the Antigravity contract configuration. Key files include:
package.json– Root package configurationcli/package.json– CLI-specific dependencies.agents/manifest.json– Agent registry and metadata
YAML appears in specific configuration contexts alongside JSON, storing structured data essential for the system's operation.
Markdown
Markdown defines agents, skills, workflows, and the static documentation site. These files function as data sources rather than executable code:
README.md– Project documentation.agents/agent/project-planner.md– Agent behavior definitions
Language-Specific File Organization
The repository organizes code by language and function:
| Language | Primary Directories | Key Files |
|---|---|---|
| TypeScript | web/src/ |
web/src/lib/utils.ts, web/src/app/page.tsx, web/next.config.ts |
| JavaScript | cli/ |
cli/bin/index.js, cli/lib/managed-tree.js |
| Python | .agents/skills/ |
.agents/skills/webapp-testing/scripts/playwright_runner.py, .agents/skills/vulnerability-scanner/scripts/security_scan.py |
| JSON | Root, .agents/ |
package.json, cli/package.json, .agents/manifest.json |
Summary
- ag-kit uses TypeScript for the Next.js documentation site and type-safe utilities in
web/src/lib/utils.ts. - JavaScript (ESM) powers the CLI runtime and Antigravity tooling, with entry points in
cli/bin/index.js. - Python 3.10+ drives AI-agent skills including security scanning and Playwright testing in
.agents/skills/. - JSON and YAML handle package manifests and system configuration throughout the repository.
- Markdown documents agents, skills, and project workflows in
.agents/and the root directory.
Frequently Asked Questions
Is ag-kit primarily a TypeScript project?
While TypeScript handles the documentation site and shared utilities, ag-kit is fundamentally a polyglot project. According to the vudovn/ag-kit source code, JavaScript powers the CLI entry points in cli/bin/index.js and Python implements the AI-agent skill scripts, making equal use of multiple languages across different architectural layers.
What version of Python does ag-kit require?
The Python components require version 3.10 or higher. This is specified in the utility scripts located in .agents/skills/, which implement security scanning and web testing functionality that depends on modern Python features.
Why does ag-kit use JavaScript instead of TypeScript for the CLI?
The CLI entry point in cli/bin/index.js uses JavaScript to ensure broad Node.js compatibility and faster startup times for the command-line interface. The supporting library code in cli/lib/managed-tree.js also uses JavaScript ESM patterns, maintaining consistency across the CLI package while the documentation site uses TypeScript.
How are the AI agent skills implemented?
AI agent skills in ag-kit combine Python execution scripts with Markdown documentation and JSON manifests. The Python scripts in .agents/skills/ (such as security_scan.py and playwright_runner.py) contain the executable logic, while .agents/manifest.json registers these capabilities and Markdown files like .agents/agent/project-planner.md document the agent behaviors and workflows.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →