agentleFS
alumnium-hqalumnium-hq/alumnium/CLAUDE.md

alumnium

CLAUDE.md1k starsChanged 7 months agoMITView on GitHub

AI-powered test automation framework using natural language commands. Wraps Appium, Playwright, and Selenium. Experimental/early development. Monorepo structure: Alumni Class: Main entry point with API: do(), check(), get(), find() Key directories (inside packages/typescript/<package>/src/ for TypeScript): Each package (java, python, typescript) has development commands:

We split this CLAUDE.md into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Match existing patterns: Keep architecture consistent

    line 74

≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

Alumnium

Overview

AI-powered test automation framework using natural language commands. Wraps Appium, Playwright, and Selenium. Experimental/early development.

Monorepo structure:

  • packages/java/ - Java client implementation
  • packages/python/ - Python client implementation
  • packages/typescript/ - TypeScript workspace: shared scripts, tests and tooling, plus npm packages in subdirectories:
    • core/ (@alumnium/core) - Alumni, Area, clients, AI agents, prompts, caches, Env, telemetry, storage, accessibility trees, tools and the BaseDriver contract. No drivers or LLM provider SDKs; ai is an optional peer loaded lazily via llm/loadAi.ts when agents run. The main entry (src/index.ts) exports only the public API (Alumni, Area, Cache, Model, tools, etc.); everything other packages need (Env, Logger, BaseDriver, utils) comes from @alumnium/core/internal, which the main entry re-exports from. Agent internals are exposed to private packages via @alumnium/core/agents, which isn't published
    • playwright/, selenium/, appium/, maestro/, xcode/ (@alumnium/<driver>) - Drivers, each exporting an Alumni bound to its native driver
    • openai/, anthropic/, google/, azure/, aws/, deepseek/, mistral/, xai/, openrouter/, ollama/, codex/, cursor/ (@alumnium/<provider>) - One package per LLM provider, depending on ai. Each exports model builders made with Model.builder() (e.g. openai()), returning a Model.WithProvider that creates its LLM; there is no global provider registry. Model.resolver(...providerModules) maps providers to the builders the given packages export; alumnium (alumnium/src/models.ts) and server use it with all provider packages to resolve ALUMNIUM_MODEL and models of HTTP sessions. Shared helpers live in core/src/llm/providerUtils.ts
    • telemetry/ (@alumnium/telemetry) - OpenTelemetry SDK and OTLP trace/log exporters, an optional peer of core loaded lazily via core/src/telemetry/loadTelemetry.ts when ALUMNIUM_TRACE is enabled
    • test/ (@alumnium/test) - Record & replay for host agents: agent-neutral Recording schema, Masker, Recorder sink and TestCache/FileTestCache
    • server/, mcp/, cli/ - HTTP server, MCP server and CLI, only shipped inside the compiled alumnium binary (private)
    • alumnium/ (alumnium) - Batteries-included package: all drivers and providers, Alumni accepting any native driver, and the alumnium bin

Key Architecture

Alumni Class: Main entry point with API: do(), check(), get(), find()

Core flow:

  1. User calls al.do("click login button")
  2. PlannerAgent breaks goal into steps
  3. ActorAgent converts steps to tool calls
  4. Tools execute actions via Drivers
  5. Drivers abstract platform differences (Selenium/Playwright/Appium)
  6. Accessibility Trees provide platform-agnostic UI representation

Key directories (inside packages/typescript/<package>/src/ for TypeScript):

  • accessibility/ - Platform-specific tree implementations (Chromium, XCUITest, UIAutomator2)
  • drivers/ - Driver wrappers (SeleniumDriver, PlaywrightDriver, AppiumDriver)
  • clients/ - HttpClient (communicates with server), NativeClient (Python only, runs agents locally)
  • server/agents/ - AI agents with provider-specific prompts (Python only)
  • tools/ - Available actions (ClickTool, TypeTool, etc.)

Development

Package commands

Each package (java, python, typescript) has development commands:

mise //packages/{package-name}:build                       # Build
mise //packages/{package-name}:format                      # Format code
mise //packages/{package-name}:types                       # Check types
mise //packages/{package-name}:lint                        # Run linter
mise //packages/{package-name}:test/unit                   # Run unit tests
mise //packages/{package-name}:test/system:appium-ios      # Run Appium iOS system tests
mise //packages/{package-name}:test/system:appium-android  # Run Appium Android system tests
mise //packages/{package-name}:test/system:maestro-ios     # Run Maestro iOS system tests
mise //packages/{package-name}:test/system:maestro-android # Run Maestro Android system tests
mise //packages/{package-name}:test/system:playwright      # Run Playwright system tests
mise //packages/{package-name}:test/system:selenium        # Run Selenium system tests

Core Commands

TypeScript core provides extra commands:

mise //packages/typescript:eval        # Run agent evaluations
mise //packages/typescript:dev/mcp     # Start Alumnium MCP
mise //packages/typescript:dev/server  # Start Alumnium server

Best Practices

  1. Read files before editing: Understand current implementation
  2. Match existing patterns: Keep architecture consistent
  3. Update both languages: Maintain API parity between Python/TypeScript
  4. Respect TypeScript package boundaries: Import other packages by name through their entries (@alumnium/core for public API, @alumnium/core/internal for everything else), never by relative path. Add new core modules to core/src/internal.ts, and to core/src/index.ts only if users need them. scripts/build/npmPackages.ts enforces forbidden imports and declared dependencies per package

Download now (ZIP)

Trending

Quiet since June.thin dataabout the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 1 mentionJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the alumnium-hq/alumnium repository that our weekly crawl found: only 2 in all, so this is a hint, not a trend. There is no adoption data for this file yet.
  • In this repositoryOne other file it gives its agents.

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.