
compare-bundles
Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.
- Installs
- 279
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/tuist/agent-skills --skill compare-bundles- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads compare-bundles automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Compare Bundles
Quick Start
You'll typically receive two bundle identifiers. Follow these steps:
- Run
tuist bundle list --jsonto find bundles on each branch. - Run
tuist bundle show <bundle-id> --jsonfor both base and head bundles. - Compare artifact trees with
tuist bundle artifact list <bundle-id> --json. - Compare install size, download size, and other metadata.
- Summarize size changes with actionable recommendations.
Step 1: Resolve Bundles
If base/head are bundle IDs or dashboard URLs
Fetch each directly:
tuist bundle show <base-id> --json
tuist bundle show <head-id> --json
If base/head are branch names
List recent bundles on each branch and pick the latest:
tuist bundle list --git-branch <base-branch> --json
tuist bundle list --git-branch <head-branch> --json
Then fetch full details with tuist bundle show <id> --json.
Defaults
- If no base is provided, use the project's default branch (usually
main). - If no head is provided, detect the current git branch.
Step 2: Compare Artifact Trees
After fetching both bundles with tuist bundle show <id> --json, compare the individual artifacts:
tuist bundle artifact list <base-id> --json
tuist bundle artifact list <head-id> --json
Match artifacts by name across both bundles. Look for:
- New artifacts added in the head bundle (potential size contributors)
- Removed artifacts (explain size decreases)
- Size changes in existing artifacts
Step 3: Compare Top-Level Metrics
After fetching both bundles, compare:
| Metric | What to check |
|---|---|
install_size | Flag if head is >5% larger |
download_size | Flag if head is >5% larger |
version | Note version changes |
supported_platforms | Note platform changes |
app_bundle_id | Should match between base and head |
Compute deltas:
- Install size delta:
head_install_size - base_install_size - Download size delta:
head_download_size - base_download_size - Percentage change:
delta / base_size * 100
Step 4: Analyze Size Changes
If size increased significantly (>5%):
- Check if
versionchanged, which might explain expected size growth. - Check if
supported_platformschanged (adding a platform increases size). - Look at the
artifactsfield in the bundle details for individual artifact sizes.
Common causes of size increases:
- New frameworks or libraries added
- Asset catalogs grew (new images, videos)
- Unoptimized resources (large PNGs instead of compressed formats)
- Debug symbols included in release builds
- New localizations added
Common causes of size decreases:
- Removed unused frameworks
- Optimized assets
- Tree shaking or dead code elimination improvements
- Moved functionality to on-demand resources
Summary Format
Produce a summary with:
- Overall verdict: Size increased, decreased, or stable.
- Install size: Absolute and percentage change.
- Download size: Absolute and percentage change.
- Version: Note if version changed.
- Platforms: Note any platform changes.
- Recommendations: Actionable next steps for size regressions.
Example:
Bundle Comparison: base (v2.1.0 on main) vs head (v2.2.0 on feature-x)
Install Size: 45.2 MB -> 52.8 MB (+16.8%) -- REGRESSION
Download Size: 28.1 MB -> 32.4 MB (+15.3%) -- REGRESSION
Version: 2.1.0 -> 2.2.0
Platforms: iOS, macOS (unchanged)
The install size increased by 7.6 MB. This is a significant increase
that may affect user download and storage experience.
Recommendations:
- Review new frameworks or assets added in this version
- Check for uncompressed resources or oversized image assets
- Consider using asset compression or on-demand resources
- Run `xcrun bitcode_strip` analysis to check for unnecessary bitcode
Done Checklist
- Resolved both base and head bundles
- Compared artifact trees using
tuist bundle artifact list - Compared install and download sizes
- Analyzed root causes of size changes
- Provided actionable recommendations
FAQ
What does the compare-bundles skill do?
Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.
How do I install compare-bundles?
Run npx skills add https://github.com/tuist/agent-skills --skill compare-bundles in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/compare-bundles/ (personal) or .claude/skills/compare-bundles/ (project).
Which AI agents can use compare-bundles?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is compare-bundles safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains compare-bundles?
It is published by tuist in tuist/agent-skills. It has 279 recorded installs.
More from tuist/agent-skills
using-tuist-generated-projects
tuist/agent-skills
Guides day-to-day work in Tuist-generated Xcode workspaces, including generation, build and test commands, and buildable folders. Use when working in a Tuist-generated project or when users mention tuist generate, xcodebuild test, or generated workspaces.
debug-generated-project
tuist/agent-skills
Debugs issues users encounter with Tuist-generated projects by reproducing the scenario locally, building Tuist from source when needed, and triaging whether it is a bug, misconfiguration, or something that needs team input. Use when users report generation failures, build errors after generation, or unexpected project behavior.
fix-flaky-tests
tuist/agent-skills
Fixes flaky tests by analyzing failure patterns from Tuist test insights, identifying root causes, and applying targeted corrections. Can be invoked with a specific test case URL (e.g. https://tuist.dev/{account}/{project}/tests/test-cases/{id}) or without arguments to discover and fix all flaky tests in the project.
migrating-to-tuist-generated-projects
tuist/agent-skills
Migrates existing Xcode projects to Tuist generated workspaces with build and run validation, external dependency mapping, and migration checklists. Use when adopting Tuist for an existing app or converting a hand-edited Xcode project to generated projects.
compare-builds
tuist/agent-skills
Compares two Xcode build runs to identify duration regressions, cache changes, and new issues. Can be invoked with build IDs, dashboard URLs, or branch names (e.g. tuist compare-builds --base main --head feature-branch).
analyze-selective-testing
tuist/agent-skills
Analyzes Xcode selective testing effectiveness for a test run, showing which test targets were skipped or ran, and diagnosing regressions in test selection. Can compare two test runs to identify what changed.
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.