
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@whenlabs/aware
Advanced tools
Auto-detect your stack, generate and sync AI context files (CLAUDE.md, .cursorrules, copilot-instructions.md, AGENTS.md)
Auto-detect your stack and generate AI context files. Part of the WhenLabs toolkit.
Aware scans your project, detects your tech stack, and generates context files for Claude Code, Cursor, GitHub Copilot, and AGENTS.md — all from a single source of truth.
Part of the WhenLabs toolkit — install all 6 tools with one command:
npx @whenlabs/when install
Every AI coding tool reads a different context file:
You end up writing the same conventions three times, they drift apart, and none of them auto-detect your stack.
$ aware init
Detected Stack
==================================================
Framework Next.js 15.1 (App Router) (95%)
Language TypeScript 5.5 (99%)
Styling Tailwind CSS 4.0 (95%)
ORM Drizzle ORM (95%)
Database PostgreSQL (90%)
Testing Vitest (95%), Playwright (95%)
Linting ESLint 9 (95%), Prettier (90%)
Package Manager pnpm (99%)
Deployment Vercel (95%)
Auth NextAuth.js v5 (95%)
API Style tRPC (95%)
==================================================
✓ .aware.json created
✓ CLAUDE.md (13 sections)
✓ .cursorrules (4 sections)
✓ .github/copilot-instructions.md (13 sections)
✓ AGENTS.md (6 sections)
One command. Full stack detection. Four context files. All in sync.
Recommended: Install the full WhenLabs toolkit with
npx @whenlabs/when installto get aware plus 5 other tools in one step.
npm install -g @whenlabs/aware
Or run directly:
npx @whenlabs/aware init
Requirements: Node.js >= 20.12
aware initScans your project, detects the stack, generates .aware.json and all context files.
aware init # Detect and generate
aware init -t claude,cursor # Only specific targets
aware init --force # Overwrite existing files
aware init --no-detect # Skip detection, create empty config
aware init --workspace # Monorepo mode: scaffold a per-package .aware.json that extends the root
Options:
| Flag | Description | Default |
|---|---|---|
-t, --targets <targets> | Comma-separated targets: claude, cursor, copilot, agents, all | claude,cursor,copilot,agents |
-f, --force | Overwrite existing files without prompting | false |
--no-detect | Skip auto-detection, create empty config | detection on |
--workspace | Monorepo mode: discover workspace packages and scaffold a per-package .aware.json that extends the root | false |
aware syncRegenerates context files from .aware.json after you've edited it.
aware sync # Regenerate all targets
aware sync --dry-run # Preview changes without writing
aware diffShows what changed in your detected stack and generated files since the last sync.
aware diff # Human-readable diff, prompts to sync if drift found
aware diff --check # CI mode: exit 0 (clean) / 1 (stack drift) / 2 (tamper)
aware diff --json # Emit a machine-readable DriftReport as JSON
aware diff --target claude # Narrow content drift to one target
aware diff --check --quiet # Silent CI gate
Options:
| Flag | Description | Default |
|---|---|---|
--check | CI mode: exit 0/1/2 for clean/drift/tamper; no interactive prompt | false |
--json | Emit a machine-readable DriftReport as JSON | false |
--target <target> | Narrow content drift to one target (claude, cursor, copilot, agents) | all targets |
--quiet | Suppress human output (useful with --check) | false |
Exit codes for --check:
0 — No drift1 — Stack drift detected (re-run aware sync to update generated files)2 — Tamper detected (a generated file was edited by hand since the last sync)Aware reads your project files to detect your stack. All detectors run in parallel for speed:
| What | How |
|---|---|
| Framework | package.json deps, Cargo.toml, requirements.txt, go.mod |
| Language | tsconfig.json, .python-version, rust-toolchain.toml |
| Styling | Tailwind config, styled-components/Emotion in deps |
| ORM | Prisma schema, Drizzle config, SQLAlchemy in deps |
| Database | DATABASE_URL in .env, docker-compose.yml |
| Testing | Vitest/Jest/Playwright config or deps |
| Linting | ESLint/Prettier/Biome config or deps |
| Package Manager | Lock files (pnpm-lock.yaml, yarn.lock, etc.) |
| Monorepo | turbo.json, nx.json, pnpm-workspace.yaml |
| Deployment | vercel.json, netlify.toml, fly.toml, Dockerfile |
| Auth | NextAuth, Clerk, Lucia, Passport, Supabase Auth, Better Auth in deps |
| API Style | tRPC, GraphQL, OpenAPI files |
| State Mgmt | Zustand, Redux Toolkit, Jotai, XState in deps |
| CI/CD | .github/workflows/, .gitlab-ci.yml |
| Bundler | Vite, Webpack, esbuild, tsup, SWC, Rollup configs |
Each detection returns a confidence score (0-1) and the source it was detected from.
Detection results go into .aware.json. Edit this file to customize conventions, add rules, and describe your project:
{
"version": 1,
"project": {
"name": "my-app",
"description": "A B2B SaaS platform",
"architecture": "Next.js App Router with tRPC and Drizzle"
},
"stack": {
"framework": "nextjs@15.1:app-router",
"language": "typescript@5.5",
"orm": "drizzle"
// ... auto-detected
},
"conventions": {
"naming": {
"files": "kebab-case",
"components": "PascalCase"
}
},
"rules": [
"Use server components by default",
"Never use any — define proper types"
],
"structure": {
"src/app/": "Next.js App Router pages and layouts",
"src/components/": "Reusable UI components"
},
"targets": {
"claude": true,
"cursor": true,
"copilot": true,
"agents": true
}
}
Conventions are auto-generated based on the detected language and framework (e.g., TypeScript projects get camelCase functions, PascalCase components; Python projects get snake_case).
Each detected stack component maps to a fragment — a chunk of context-aware best practices and conventions. Fragments cover frameworks, ORMs, testing tools, linting, deployment, auth, API patterns, state management, and CI/CD.
Fragments are resolved based on your detected stack and composed into a unified context. Only relevant fragments are included.
Each AI tool gets the format it works best with:
| Target | File | Style |
|---|---|---|
| Claude Code | CLAUDE.md | Full markdown — verbose, all sections, fragment content included inline |
| Cursor | .cursorrules | Concise flat rules — imperative style, condensed fragments |
| GitHub Copilot | .github/copilot-instructions.md | Medium markdown, trimmed |
| AGENTS.md | AGENTS.md | Structured sections (Context, Conventions, Constraints) |
Frameworks: Next.js (App/Pages Router), Remix, Astro, SvelteKit, Vite+React, Vite+Vue, Vue, Angular, NestJS, Express, Fastify, Hono, FastAPI, Django, Flask, Rust CLI, Go
Styling: Tailwind CSS (v3/v4), styled-components, CSS Modules
ORMs: Drizzle, Prisma, TypeORM, Kysely, Mongoose, SQLAlchemy
Databases: PostgreSQL, MySQL, MongoDB, SQLite (from .env, Docker Compose, or ORM config)
Testing: Vitest, Jest, Playwright, Cypress, pytest
Linting: ESLint (v8/v9), Prettier, Biome
Auth: NextAuth/Auth.js, Clerk, Lucia, Supabase Auth, Better Auth
API: tRPC, GraphQL, REST
State Management: Zustand, Redux Toolkit, Jotai, XState
CI/CD: GitHub Actions, GitLab CI
Deployment: Vercel, Netlify, Fly.io, Railway, Docker
Bundlers: Vite, Webpack, esbuild, tsup, SWC, Rollup, Turbopack, Parcel
Package Managers: pnpm, npm, Yarn, Bun, Cargo, Poetry, uv
Monorepos: Turborepo, Nx, pnpm workspaces
Add a drift gate to your CI so generated context files never fall out of sync with the actual stack:
# .github/workflows/aware.yml
name: AI Context Drift
on: [pull_request]
jobs:
aware:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npx @whenlabs/aware diff --check --quiet
# Install dependencies
pnpm install
# Run in development mode
pnpm dev [command]
# Build
pnpm build
# Run tests
pnpm test
# Type check
pnpm lint
MIT
FAQs
Auto-detect your stack, generate and sync AI context files (CLAUDE.md, .cursorrules, copilot-instructions.md, AGENTS.md)
The npm package @whenlabs/aware receives a total of 34 weekly downloads. As such, @whenlabs/aware popularity was classified as not popular.
We found that @whenlabs/aware demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.