AGENTS.md · transloadit/uppy
AGENTS.md from transloadit/uppy: 150 lines covering Repository Overview, Development Commands, Architecture, Build System and more.
Template by transloadit
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/transloadit/uppy/main/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 150 lines
- File
AGENTS.md
Sections
- Repository Overview
- Development Commands
- Architecture
- Build System
- Code Standards
- Testing
- Companion Server
- Important Notes
First lines (shown under the repo's MIT license)
# Uppy Repository Guide
This file provides repository guidance for coding agents. Maintain shared instructions here.
## Repository Overview
Uppy is a modular JavaScript file uploader that integrates seamlessly with any application. It’s
built using a monorepo structure with Yarn workspaces, Turbo for build orchestration, and Biome for
linting/formatting.
## Development Commands
### Core Commands
- `yarn build` - Build all packages (uses Turbo)
- `yarn build:watch` - Watch mode for building packages
- `yarn test` - Run tests for all packages
- `yarn test:watch` - Run tests in watch mode
- `yarn typecheck` - Type checking across all packages
- `yarn check` - Run Biome linting and formatting
- `yarn check:ci` - Run Biome in CI mode (no writes)
### Development Server
- `yarn dev` - Start development server (from private/dev workspace)
- `yarn dev:with-companion` - Start dev server with Companion backend
- `yarn start:companion` - Start only the Companion server
### Single Test Execution
To run tests for a specific package:
```bash
yarn workspace @uppy/[package-name] test
# Example: yarn workspace @uppy/core test
```
### Individual Package Development
```bash
yarn workspace @uppy/[package-name] build
```
## Architecture
### Monorepo Structure
- `packages/@uppy/` - Core Uppy packages (plugins, utilities)
- `packages/uppy/` - Main bundle package
- `examples/` - Example implementations for various frameworks
- `private/` - Internal development tools
### Core Architecture
- **Uppy Core** (`@uppy/core`) - Main class that manages plugins, state, and events
- **Plugins** - Modular components for different functionalities:
- **UI Plugins**: Dashboard, Drag & Drop, File Input, Webcam, etc.
- **Provider Plugins**: Google Drive, Dropbox, etc. (require Companion)
- **Uploader Plugins**: Tus (resumable), XHR Upload, AWS S3, etc.
- **Utility Plugins**: Golden Retriever (recovery), Thumbnail Generator, etc.
### Plugin Types
1. **Acquirer** - Gets files (File Input, Webcam, Google Drive)
2. **Modifier** - Modifies files (Image Editor, Compressor)
3. **Uploader** - Uploads files (Tus, XHR, AWS S3)
4. **Presenter** - Shows UI (Dashboard, Progress Bar, Status Bar)
5. **Orchestrator** - Manages workflow
6. **Logger** - Handles logging
### Key Packages
- `@uppy/core` - Main Uppy class and plugin system
- `@uppy/dashboard` - Complete UI with file management
- `@uppy/companion` - Server-side component for remote providers
- `@uppy/companion-client` - Client for communicating with Companion
- `@uppy/utils` - Shared utilities
- `@uppy/components` - Headless Preact components (with framework wrappers)
## Build System
### Turbo Configuration
The build system uses Turbo (turbo.json) for task orchestration:
- Builds have dependency ordering (`dependsOn: ["^build"]`)
- TypeScript builds output to `lib/` and `dist/` directories
- CSS builds process SCSS files to CSS
- Specific handling for the main `uppy` package bundle
### TypeScript Configuration
- Individual packages have `tsconfig.json` and `tsconfig.build.json`
- Build outputs include declaration files (.d.ts) and source maps
## Code Standards
### Linting and Formatting
- **Biome** is used for linting and formatting (replaces ESLint/Prettier)
- Configuration in `biome.json`
- Use single quotes, semicolons as needed
- 2-space indentation
### Framework Integration
- **Preact** for UI components with framework wrappers generated for React, Vue, Svelte
- **TypeScript** throughout the codebase
- Components in `@uppy/components` use Tailwind CSS with `uppy:` prefix
### Plugin Development
- All plugins extend `BasePlugin` or `UIPlugin`
- Plugins must have unique IDs and specify their type
- State management through Uppy’s store system
- Event-driven architecture using namespace-emitter
## Testing
### Test Framework
- **Vitest** for unit tests (migrated from Jest)
- **Vitest Browser Mode** for browser testing (migrated from Cypress)
- Unit tests use `.test.{ts,tsx}` extensions and browser tests `.browser.test.{ts,tsx}`
### Running Tests
- Tests run in parallel across packages via Turbo
- Examples also include tests (React, Vue, SvelteKit examples)
- Use `yarn test` for development
## Companion Server
The Companion server enables integration with remote file sources:
- Handles OAuth flows for providers like Google Drive, Dropbox
- Proxies file downloads to avoid CORS issues
- Provides search functionality for providers
- Located in `packages/@uppy/companion/`
## Important Notes
- Never commit sensitive information (API keys, tokens)
- Follow existing code conventions and patterns within each package
- Use the `@uppy/utils` package for shared functionality
- UI components should be accessible and support internationalization
- Always run `yarn check` and `yarn typecheck` before committing
- When adding a new component to `@uppy/components`, you have to run `yarn migrate:components` from
root. This is not needed for changing existing components.Signals
- Stars
- 31,036
- Forks
- 2,111
- Open issues
- 173
- Last commit (this folder)
- Oct 24, 2026 (4 days ago)
- Last release
- Oct 16, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/transloadit/uppy
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from transloadit
- 0.699score
Cursor rules · transloadit/uppy
transloadit
3 Cursor rule files from transloadit/uppy: headless-components, svelte, uppy-core.
TemplateAFreshness: A★ 31KCursor - 0.614score
admin-merge
transloadit
Update a GitHub PR with latest main, resolve conflicts, follow CI with gh-run-watch.ts, fix related failures, and squash merge with --admin.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
transform-extract-text-with-transloadit
transloadit
Extract readable text or JSON from local PDFs, scans, photos and Office documents using the extract-text Builtin and the official Transloadit CLI.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
transloadit
transloadit
Main entry-point skill for Transloadit.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
transform-transcribe-audio-with-transloadit
transloadit
Transcribe local audio or video to text, timestamped JSON, SRT or WebVTT using the transcribe Builtin and the official Transloadit CLI.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
transform-build-mosaic-collage-with-transloadit
transloadit
One-off justified mosaic photo collage (N local images -> single image) using the official `@transloadit/node` CLI.
SkillAFreshness: A★ 5Claude Code +9
Cite this page
AGENTS.md · transloadit/uppy. Agent Mart. https://agentmart.dev/templates/transloadit-uppy-agents-md (last updated 2026-10-24)