# What Programming Languages Are Used in ag-kit? A Polyglot Architecture Guide

> Explore the polyglot architecture of ag-kit. Discover the primary programming languages TypeScript, JavaScript, and Python, plus essential configuration formats, to understand this versatile codebase.

- Repository: [Vũ Đỗ/ag-kit](https://github.com/vudovn/ag-kit)
- Tags: architecture
- Published: 2026-07-29

---

**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`](https://github.com/vudovn/ag-kit/blob/main/web/src/lib/utils.ts), utility functions like `slugify` implement type-safe string transformations:

```typescript
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`](https://github.com/vudovn/ag-kit/blob/main/web/src/app/page.tsx) uses TSX (TypeScript JSX) to render React components with full type safety, while [`web/next.config.ts`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/cli/bin/index.js) wires sub-commands and exposes the binary interface:

```bash

# 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`](https://github.com/vudovn/ag-kit/blob/main/cli/bin/index.js), which orchestrates the command-line interface. Additional library code in [`cli/lib/managed-tree.js`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/.agents/skills/vulnerability-scanner/scripts/security_scan.py) performs dependency-level security audits:

```bash
python .agents/skills/vulnerability-scanner/scripts/security_scan.py \
    --target ./my-project

```

Similarly, [`.agents/skills/webapp-testing/scripts/playwright_runner.py`](https://github.com/vudovn/ag-kit/blob/main/.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`](https://github.com/vudovn/ag-kit/blob/main/package.json) – Root package configuration
- [`cli/package.json`](https://github.com/vudovn/ag-kit/blob/main/cli/package.json) – CLI-specific dependencies
- [`.agents/manifest.json`](https://github.com/vudovn/ag-kit/blob/main/.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`](https://github.com/vudovn/ag-kit/blob/main/README.md) – Project documentation
- [`.agents/agent/project-planner.md`](https://github.com/vudovn/ag-kit/blob/main/.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`](https://github.com/vudovn/ag-kit/blob/main/web/src/lib/utils.ts), [`web/src/app/page.tsx`](https://github.com/vudovn/ag-kit/blob/main/web/src/app/page.tsx), [`web/next.config.ts`](https://github.com/vudovn/ag-kit/blob/main/web/next.config.ts) |
| JavaScript | `cli/` | [`cli/bin/index.js`](https://github.com/vudovn/ag-kit/blob/main/cli/bin/index.js), [`cli/lib/managed-tree.js`](https://github.com/vudovn/ag-kit/blob/main/cli/lib/managed-tree.js) |
| Python | `.agents/skills/` | [`.agents/skills/webapp-testing/scripts/playwright_runner.py`](https://github.com/vudovn/ag-kit/blob/main/.agents/skills/webapp-testing/scripts/playwright_runner.py), [`.agents/skills/vulnerability-scanner/scripts/security_scan.py`](https://github.com/vudovn/ag-kit/blob/main/.agents/skills/vulnerability-scanner/scripts/security_scan.py) |
| JSON | Root, `.agents/` | [`package.json`](https://github.com/vudovn/ag-kit/blob/main/package.json), [`cli/package.json`](https://github.com/vudovn/ag-kit/blob/main/cli/package.json), [`.agents/manifest.json`](https://github.com/vudovn/ag-kit/blob/main/.agents/manifest.json) |

## Summary

- **ag-kit** uses **TypeScript** for the Next.js documentation site and type-safe utilities in [`web/src/lib/utils.ts`](https://github.com/vudovn/ag-kit/blob/main/web/src/lib/utils.ts).
- **JavaScript (ESM)** powers the CLI runtime and Antigravity tooling, with entry points in [`cli/bin/index.js`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/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`](https://github.com/vudovn/ag-kit/blob/main/security_scan.py) and [`playwright_runner.py`](https://github.com/vudovn/ag-kit/blob/main/playwright_runner.py)) contain the executable logic, while [`.agents/manifest.json`](https://github.com/vudovn/ag-kit/blob/main/.agents/manifest.json) registers these capabilities and Markdown files like [`.agents/agent/project-planner.md`](https://github.com/vudovn/ag-kit/blob/main/.agents/agent/project-planner.md) document the agent behaviors and workflows.