{"id":29269728,"url":"https://github.com/zackiles/hypermix","last_synced_at":"2026-03-11T09:33:06.170Z","repository":{"id":296434317,"uuid":"993170099","full_name":"zackiles/hypermix","owner":"zackiles","description":"Real-time, token-aware, auto-repomixing of your codebase and all of its dependencies. Manage multiple local and remote sources of context. Native-integrations for Cursor, Claude, and Windsurf to provide optimized context for your agent. Built for Node, Bun, and Deno projects.","archived":false,"fork":false,"pushed_at":"2025-05-31T19:35:45.000Z","size":1954,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-08T08:38:37.947Z","etag":null,"topics":["agentic-ai","cli","cursor","repomix","windsurf"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zackiles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-30T10:34:11.000Z","updated_at":"2025-12-10T07:09:32.000Z","dependencies_parsed_at":"2025-05-31T01:19:17.893Z","dependency_job_id":"b26cfe7b-13bf-40c5-a3f2-ac1da7149192","html_url":"https://github.com/zackiles/hypermix","commit_stats":null,"previous_names":["zackiles/hypermix"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/zackiles/hypermix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fhypermix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fhypermix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fhypermix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fhypermix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zackiles","download_url":"https://codeload.github.com/zackiles/hypermix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fhypermix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30377283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","cli","cursor","repomix","windsurf"],"created_at":"2025-07-04T21:09:36.492Z","updated_at":"2026-03-11T09:33:06.114Z","avatar_url":"https://github.com/zackiles.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hypermix\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"logo.png\" alt=\"Hypermix Logo\" height=\"300\"\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cb\u003eReal-time, token-aware, auto-repomixing of your codebase and all of its dependencies. Manage multiple local and remote sources of context.  Native-integrations for Cursor, Claude, and Windsurf to provide optimized context for your agent. Built for Node, Bun, and Deno projects in Typescript and Javascript.\u003c/b\u003e\n  \u003c/div\u003e\u003c/br\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://www.npmjs.com/package/hypermix\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/hypermix.svg\" alt=\"npm version\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://jsr.io/@zackiles/hypermix\"\u003e\u003cimg   src=\"https://jsr.io/badges/@zackiles/hypermix\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/zackiles/hypermix/actions/workflows/release.yml\"\u003e\n      \u003cimg src=\"https://github.com/zackiles/hypermix/actions/workflows/release.yml/badge.svg\" alt=\"Release\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Overview\n\nHypermix bridges the gap between repomix, your project, and your agentic development environment. It tracks token usage across your mixes, intelligently tuning your settings and agent instructions in real-time. Hypermix adds ergonomics to your workflows.\n\n### How It Works\n\nOnce installed into a project, the Hypermix CLI is provided as a tool to your agent, prompting it to properly use and manage your mixes. It accomplishes this through it's own set of dynamic Cursor/Windsurf/Claude Code rules it injects, integrating seamlessly. Agents get access to what they need, when they need it.\n\nTo manage its lifecycle, custom npm scripts, deno or vscode tasks, and git-hooks provide are added for Hypermix to automatically maintain the most optimal context to your agent without you lifting a finger.\n\n\u003e [!TIP]\n\u003e Check out some examples of [When To Use It](#when-to-use-it).\n\n## Quick Start\n\nThe easiest way to use Hypermix is with `npx` - no global installation required:\n\n```bash\nnpx hypermix init\n```\n\nThis single command will:\n\n- ✓ Initialize a hypermix config file\n- ✓ Add hypermix tasks in: package.json deno.json, tasks.json\n- ✓ Adds agent rules and settings\n\nAfter initialization, you can quickly add repositories to your config:\n\n```bash\n# Add a repository using owner/repo format\nhypermix add openai/openai-node\n\n# Or using the full GitHub URL\nhypermix add https://github.com/openai/openai-node\n```\n\n### Screenshot\n\n\u003cimg src=\"snip1.png\" alt=\"Screenshot\" height=\"350\" \u003e\n\n### Other Installation Methods\n\nHypermix can be used as a CLI or accessed programmatically by installing it from NPM (Node, Bun) or JSR (Deno).\n\n#### Deno\n\n```bash\ndeno add -g jsr:@zackiles/hypermix\n```\n\n#### Node / Bun\n\n```bash\nnpm install -g hypermix\n```\n\n### Uninstalling\n\nLocal and global installations can be removed by running:\n\n```bash\nhypermix uninstall\n```\n\n## Usage\n\nIn general, a design goal of Hypermix is not having to access it at all once you've installed it. However, if you'd rather manage the lifecycle of your mixes yourself, or access Hypermix programmatically you can. All options and configuration have intelligent safe defaults.\n\n### Generating Mixes\n\n```bash\n# Run with a hypermix config file in current working directory\nnpx hypermix\n\n# Specify the path of the config file\nnpx hypermix --config hypermix.config.ts\n\n# Specify the output directory\nnpx hypermix --output-path ./custom-context\n```\n\n**Available flags:**\n\n```\n--config, -c       Path to hypermix config file (defaults to hypermix.config.{js,ts,json,jsonc})\n                   Example: npx hypermix --config ./custom-config.ts\n--output-path, -o  Override the default output directory for all context files\n                   Example: npx hypermix --output-path ./custom/path\n--silent, -s       Suppress all output except errors\n```\n\nThe script also passes through flags to the underlying repomix tool, which all can be configured in the Hypermix config file.\n\n### Project Integration\n\nWhen you run hypermix for the first time, it automatically:\n\n1. **Adds hypermix scripts to your project:**\n   - For npm/yarn projects: Updates `package.json` with a `hypermix` script\n   - For Deno projects: Updates `deno.json` with a `hypermix` task\n   - For Makefile projects: Adds a `hypermix` target\n\n2. **Configures ignore files:**\n   - Updates `.gitignore` to exclude generated context files\n   - Updates `.cursorignore` to allow AI tools to access context files\n   - Creates `.cursorignoreindex` to prevent automatic indexing\n3. **Configures agent rules:**\n   - Detects Claude Code, Cursor, and Windsurf projects and configures rules and settings that allow agents to optimize the mixes they're provided\n\n**After initial setup, use from your project task runner as needed:**\n\n```bash\nnpm run hypermix\ndeno task hypermix\nbun run hypermix\n```\n\n\u003e [!IMPORTANT]\n\u003e Certain settings in files such as .gitignore, .cursorignore, .cursorignore files are added or modified to optimize how the mixes are used. None of them are required and can be removed at any time.\n\n### Token Awareness\n\nHypermix tracks token usage across all context files. When you run the CLI it will output a handful of details:\n\n- Reports token counts per file and total usage\n- Warns when files exceed recommended token limits\n- Optimizes context files to stay within model token windows\n- Provides streaming token counting for large files\n\n## Configuring Hypermix\n\nHypermix builds context by processing a `mixes` array, which can be defined in:\n\n- `hypermix.config.js`\n- `hypermix.config.ts`\n- `hypermix.config.json`\n- `hypermix.config.jsonc`\n\nIf no config file is found, hypermix will use default settings to process your current directory.\n\nEach object in the mixes array defines a single context-building task. There are two main ways to configure a mix item, which are mutually exclusive:\n\n### 1. Add Remote Repos\n\nThis type of mix fetches code from a specified remote GitHub repository:\n\n- **`remote`**:\n  - **Type**: `string`\n  - **Required**: Yes\n  - **Description**: The GitHub repository URL in `owner/repo` format (e.g.,\n    `denoland/std`).\n\n- **`include`**:\n  - **Type**: `string[]`\n  - **Required**: No\n  - **Description**: An array of glob patterns for files/directories to include\n    (e.g., `['src/**/*.ts', 'README.md']`). Defaults to `**/*` (all files).\n\n- **`ignore`**:\n  - **Type**: `string[]`\n  - **Required**: No\n  - **Description**: An array of glob patterns to exclude files/directories\n    (e.g., `['**/test_data/**']`).\n\n- **`output`**:\n  - **Type**: `string`\n  - **Required**: No\n  - **Description**: Custom output path for the generated XML file, relative to\n    the global `outputPath`. If omitted, a path is derived from the remote URL\n    (e.g., `owner/repo.xml`).\n\n- **`extraFlags`**:\n  - **Type**: `string[]`\n  - **Required**: No\n  - **Description**: An array of additional boolean command-line flags to pass\n    to `repomix` (e.g., `['--compress']`).\n\n### 2. Add Your Codebase\n\nThis type of mix is for specifying your local codebase by pointing to its existing `repomix.config.json`:\n\n- **`config`** or **`repomixConfig`**:\n  - **Type**: `string`\n  - **Required**: Yes\n  - **Description**: Path to your `repomix.config.json` file (e.g.,\n    `'./repomix.config.json'`).\n\n- **`extraFlags`**:\n  - **Type**: `string[]`\n  - **Required**: No\n  - **Description**: An array of additional boolean command-line flags to pass\n    to `repomix` (e.g., `['--quiet']`). Other options like `include`, `ignore`,\n    and `output` are typically defined within the referenced\n    `repomix.config.json` itself.\n\n### Example `hypermix.config.ts`\n\nHere's how you might structure your `hypermix.config.ts` to include multiple\nmixes:\n\n```typescript\n// hypermix.config.ts\nimport { join } from '@std/path' // Or your preferred path joining utility\n\nexport default {\n  silent: false, // Global option: suppress non-error output\n  outputPath: '.hypermix', // Global option: root directory for all generated .xml files\n  mixes: [\n    // Example of a remote repository mix\n    {\n      remote: 'denoland/std',\n      include: ['fs/**/*.ts'], // Only include files from the fs module\n      ignore: ['fs/**/_*.ts', 'fs/**/test*.ts'], // Exclude private and test files\n      output: join('@std', 'fs.xml'), // Custom output path\n      extraFlags: ['--compress'], // Compress this specific output\n    },\n    // Another remote mix, simpler configuration\n    {\n      remote: 'vercel/ai',\n      include: ['packages/ai/core/**/*.ts'],\n      output: 'vercel-ai-core.xml',\n    },\n    // Example of a local mix using an existing repomix.config.json\n    {\n      repomixConfig: './repomix.config.json', // Use local repomix config for the current project\n      extraFlags: ['--quiet'], // Pass --quiet to repomix for this local build\n    },\n    // You can add more remote or local mixes as needed\n  ],\n}\n```\n\nThis structure allows for flexible and powerful context aggregation from various\nsources into a centralized location, tailored to your project's needs.\n\n\u003e [!TIP]\n\u003e You can quickly add a new repository to your config by running `hypermix add [owner/repo]`. This will automatically add a mix entry with safe defaults for the repository.\n\n## When To Use It\n\n- Enhance AI agent context with comprehensive codebase knowledge\n- Optimize token usage across large projects\n- Integrate multiple repositories into a unified context\n- Provide better context to AI-powered development tools\n- Simplify AI integration in complex projects\n- Manage context files with intelligent repository mixing\n\n## License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackiles%2Fhypermix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzackiles%2Fhypermix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackiles%2Fhypermix/lists"}