altair
AGENTS.md5.4k starsChanged 3 years agoMITView on GitHub
Altair GraphQL Client is a monorepo managed with pnpm and Nx/Turbo. Key packages: Note: Always run from the packages/altair-app directory. The test suite has 135 suites / ~1133 tests and takes ~3–4 minutes. Group imports in this order: 1. External libraries (rxjs, @angular/) 2. Internal packages (@altairgraphql/) 3. Relative imports (../, ./) Each test should be independent. Avoid tracking emission indices across tests.
- Installs packages
We split this AGENTS.md into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
Use OnPush change detection strategy
- Very specific: line 54
Use signal inputs (input<T>()) and signal outputs (output<T>())
- Distinctive: line 60
Use selectors for NgRx state access
- Very specific: line 104
"no elements in sequence": Use take(1) instead of first()
- Very specific: line 105
Multiple actions, only one works: Use mergeMap instead of switchMap in NgRx effects
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md - Altair GraphQL Client
Repository Overview
Altair GraphQL Client is a monorepo managed with pnpm and Nx/Turbo. Key packages:
packages/altair-app- Angular-based frontend applicationpackages/altair-api- NestJS backend APIpackages/altair-core- Shared business logic and typespackages/altair-electron- Electron desktop wrapperpackages/altair-crx- Browser extension
Build Commands
Root Level (monorepo)
pnpm install # Install all dependencies
pnpm bootstrap # Build local packages and link them
pnpm build # Build all packages
pnpm test # Run tests across monorepo
pnpm start:app # Start web app (localhost:4200)
pnpm start:api:dev # Start API dev server
pnpm build-ext # Build browser extension
pnpm build-electron # Build Electron appAltair App (packages/altair-app)
pnpm vitest run # Run all Vitest tests
pnpm vitest # Watch mode
pnpm vitest run path/to/file.spec.ts # Run single test file
pnpm vitest run -t "name" # Run tests matching name
pnpm test-single-run # Single run with coverage
pnpm lint # Run ESLint (ng lint)
pnpm build # Build the appNote: Always run from the
packages/altair-appdirectory. The test suite has 135 suites / ~1133 tests and takes ~3–4 minutes.
Code Style
Imports
Group imports in this order:
- External libraries (rxjs, @angular/*)
- Internal packages (@altairgraphql/*)
- Relative imports (../, ./)
Angular Components
- Use OnPush change detection strategy
- Use signal inputs (
input<T>()) and signal outputs (output<T>()) - Manage subscriptions (unsubscribe in ngOnDestroy)
Angular Services
- Return observables from data methods
- Use selectors for NgRx state access
- Dispatch actions for state modifications
Testing Guidelines
What to Test
- Component business logic and methods
- Event emissions using
wrapper.emitted() - State management and property changes
- Edge cases (null values, rapid calls, invalid inputs)
What NOT to Test
- UI library component props (ng-zorro, Angular Material)
- Template rendering details or CSS styling
Test Pattern (altair-app)
import { mount } from '../testing';
import { ExampleComponent } from './example.component';
describe('ExampleComponent', () => {
let wrapper: ReturnType<typeof mount>;
beforeEach(() => {
wrapper = mount(ExampleComponent, {
props: { initialValue: 'test' },
providers: [{ provide: SomeService, useValue: mockSomeService }]
});
});
it('should emit event when button is clicked', () => {
wrapper.componentInstance.onButtonClick();
expect(wrapper.emitted().buttonClicked[0]).toEqual(['test-data']);
});
});Test Independence
Each test should be independent. Avoid tracking emission indices across tests.
Common Issues
- "no elements in sequence": Use
take(1)instead offirst() - Multiple actions, only one works: Use
mergeMapinstead ofswitchMapin NgRx effects - Tests failing: Try deleting the
node_modules/.vitecache directory
Additional Resources
- Development setup:
.github/development.md - Angular components:
.github/instructions/angular-components.instructions.md - Angular services:
.github/instructions/angular-services.instructions.md - Angular app testing:
.github/instructions/app-testing.instructions.md - General testing:
.github/instructions/testing.instructions.md - TypeScript:
.github/instructions/typescript.instructions.md - NestJS API:
.github/instructions/nestjs-api.instructions.md - JavaScript:
.github/instructions/javascript.instructions.md - Documentation:
.github/instructions/documentation.instructions.md
Trending
Less talk lately.about the whole repository
Who's talking about altair-graphql/altair
- graphql-dotnet/server“GraphQL.Server.Ui.Altair 8.3.1 - Doesn't work - stuck on splash screen”GitHub · Oct 21, 2025 · 4 reactions
- rockstor/rockon-registry“Altair GraphQL Client”GitHub · Sep 4, 2024 · 1 reactions
- graphql/graphiql“relint when schema changes”GitHub · Aug 12, 2023 · 1 reactions
- NixOS/nixpkgs“altair: 8.5.9 -> 8.5.11”GitHub · Oct 10, 2026
- bangumi/server-private“build(deps): update deps”GitHub · Sep 2, 2026
The biggest 5 of 50 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 50
Talked about on GitHub (50 times).
On GitHub · 50
- Oct 21, 2025GraphQL.Server.Ui.Altair 8.3.1 - Doesn't work - stuck on splash screen — graphql-dotnet/server4 reactions
- Sep 4, 2024Altair GraphQL Client — rockstor/rockon-registry1 reaction
- Aug 12, 2023relint when schema changes — graphql/graphiql1 reaction · 7 comments
- Oct 10, 2026altair: 8.5.9 -> 8.5.11 — NixOS/nixpkgs0 reactions · 2 comments
- Sep 2, 2026build(deps): update deps — bangumi/server-private0 reactions · 3 comments
45 more on GitHub
- Aug 22, 2026altair: 8.5.3 -> 8.5.9 — NixOS/nixpkgs0 reactions
- Jul 8, 2026GraphQL Auto Completion — RoseSilverSoftware/IlluminatedCloud0 reactions
- Jun 30, 2026Bump the cargo group across 1 directory with 3 updates — plinkdev1/omnichain-smart-account-wallet0 reactions
- Jun 6, 2026fix(deps): update all non-major dependencies — jellydn/fastify-starter0 reactions · 3 comments
- May 24, 2026altair: 8.5.0 -> 8.5.3 — NixOS/nixpkgs0 reactions · 1 comment
- May 24, 2026fix(deps): update dependency altair-fastify-plugin to v8.5.3 — jellydn/fastify-starter0 reactions · 3 comments
- May 20, 2026chore(deps)(deps): bump async-graphql from 6.0.11 to 7.0.10 — ViewWay/hiver0 reactions · 1 comment
- May 1, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Apr 29, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Apr 22, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Apr 8, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Apr 1, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Mar 29, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Mar 22, 2026Link Checker Report — appimage-sig/appimages0 reactions
- Feb 27, 2026Bump async-graphql from 6.0.11 to 7.0.10 — last9/otel-rust-axum0 reactions · 1 comment
- Dec 24, 2025build(deps): update deps — bangumi/server-private0 reactions · 1 comment
- Dec 2, 2025build(deps): update deps — bangumi/server-private0 reactions · 1 comment
- Oct 24, 2025altair: 8.3.0 -> 8.5.0 — NixOS/nixpkgs0 reactions · 4 comments
- Sep 25, 2025altair: 8.2.5 -> 8.3.0 — NixOS/nixpkgs0 reactions · 1 comment
- Jul 24, 2025Bump the cargo group across 4 directories with 1 update — graphql-hive/graphql-gateways-benchmark0 reactions · 2 comments
- May 28, 2025build(deps): bump async-graphql from 6.0.11 to 7.0.10 — ratchet-runner/ratchet0 reactions · 1 comment
- May 24, 2025Bump async-graphql from 6.0.11 to 7.0.10 — kento-yoshidu/app0 reactions
- May 2, 2025build(deps): update deps — bangumi/server-private0 reactions · 1 comment
- Apr 20, 2025fix(deps): update dependency altair-fastify-plugin to v8.2.2 — jellydn/fastify-starter0 reactions · 4 comments
- Mar 20, 2025Bump async-graphql from 6.0.11 to 7.0.10 in /federation-v1/subgraphs/products — graphql-hive/graphql-gateways-benchmark0 reactions · 3 comments
- Mar 9, 2025build(deps): update dependency altair-static to v8.2.1 — bangumi/server-private0 reactions · 1 comment
- Mar 9, 2025fix(deps): update dependency altair-fastify-plugin to v8.2.1 — jellydn/fastify-starter0 reactions · 4 comments
- Mar 3, 2025altair@8.2.0: hash check failed — ScoopInstaller/Extras0 reactions · 1 comment
- Mar 3, 2025build(deps): update dependency altair-static to v8.2.0 — bangumi/server-private0 reactions · 1 comment
- Mar 2, 2025fix(deps): update dependency altair-fastify-plugin to v8.2.0 — jellydn/fastify-starter0 reactions · 5 comments
- Feb 22, 2025build(deps): update deps — bangumi/server-private0 reactions · 1 comment
- Feb 22, 2025fix(deps): update dependency altair-fastify-plugin to v8.1.6 — jellydn/fastify-starter0 reactions · 4 comments
- Feb 15, 2025fix(deps): update all non-major dependencies — jellydn/fastify-starter0 reactions · 4 comments
- Feb 7, 2025build(deps): update deps — bangumi/server-private0 reactions · 1 comment
- Feb 3, 2025fix(deps): update dependency altair-fastify-plugin to v8.1.4 — jellydn/fastify-starter0 reactions · 3 comments
- Dec 30, 2024fix(deps): update dependency altair-fastify-plugin to v8.1.2 — jellydn/fastify-starter0 reactions · 4 comments
- Dec 29, 2024fix(deps): update dependency altair-fastify-plugin to v8.1.1 — jellydn/fastify-starter0 reactions · 4 comments
- Dec 23, 2024chore(deps): bump async-graphql from 5.0.10 to 7.0.10 — softwares-compound/Neocadmium-Cloud0 reactions
- Dec 4, 2024chore(deps): Bump the cargo group across 1 directory with 8 updates — khulnasoft/vector0 reactions · 1 comment
- Nov 24, 2024fix(deps): update dependency altair-fastify-plugin to v8.0.4 — jellydn/fastify-starter0 reactions · 3 comments
- Oct 20, 2024Apple M1 error installing Altair AppImage — dolevf/Black-Hat-GraphQL0 reactions · 1 comment
- Jul 29, 2024Bump the patch group across 1 directory with 8 updates — DiamondLightSource/graph-florescence-scan0 reactions
- Jul 29, 2024Bump the patch group across 1 directory with 8 updates — DiamondLightSource/graph-crystal-snapshots0 reactions
- Jul 15, 2024chore(deps): bump async-graphql from 7.0.5 to 7.0.7 — Verseghy/website_backend20 reactions · 2 comments
- Jul 15, 2024Bump the patch group across 1 directory with 8 updates — DiamondLightSource/graph-robot-operations0 reactions
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

