A Plasm domain model for PokéAPI (v2). Large entity surface: Pokémon, moves, abilities, items, locations, generations, and more.
cargo run --bin plasm-repl -- \
--schema apis/pokeapi \
--backend https://pokeapi.co# One-shot JSON (live HTTPS)
plasm-cgs --schema apis/pokeapi --backend https://pokeapi.co \
--output json pokemon pikachuNo API key is required for the public service.
Multi-entry catalogs: just build-catalogs then --catalog-dir target/plasm-catalogs (each packed catalog corresponds to an apis/<name>/ tree). PokéAPI’s default HTTP origin is http_backend in domain.yaml.
plasm-mcp --http and --mcp require a strong JWT secret for auth-framework initialization (see AGENTS.md). Example:
export PLASM_AUTH_JWT_SECRET='<long random string>'
just build-catalogs
cargo run -p plasm --bin plasm-mcp -- --catalog-dir target/plasm-catalogs --backend http://localhost:1080 \
--http --port 3001 --mcp --mcp-port 3000POST /executewith{"entry_id":"pokeapi","entities":["Pokemon"]}→303+Location.GETthat URL forprompt,session,prompt_hash.POSTthe same path with a Plasm line body. For a get-by-name, usePokemon(pikachu)(same meaning as CLIpokemon pikachu). Plasm does not use aGet(…)wrapper orEntity:slug— those shapes are parse errors or invalid;Entity(id)is the only get-by-id form. PreferAccept: application/jsonwhen you want structured rows.
Expression forms are validated against the teaching table prompt for that session; if a line fails to parse, the API returns a problem+json error.