{"adoption": {"forks": 190, "observed_at": "2026-08-28T04:07:28.158718+00:00", "stars": 2885}, "canonical_url": "https://ross.abutalabs.com/products/ax", "card": {"archived": false, "artifact_type": "framework", "description": "The pretty much \"official\" DSPy framework for Typescript", "domain": ["large-language-models", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["llm-inference", "agent-framework", "rag", "prompt-engineering", "sdk", "machine-learning"], "health_score": 100, "homepage": "http://axllm.dev", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ax-llm/ax"], "name": "ax-llm/ax", "platform": ["python", "jvm", "go", "rust", "cpp", "cross-platform"], "pushed_at": "2026-08-25T20:25:04+00:00", "repo": "ax-llm/ax", "stars": 2885, "tags": ["dspy", "typed-signatures", "llm-optimization", "gepa", "multi-provider", "structured-output", "llm-workflows", "ai-agents", "retrieval-augmented-generation", "nodejs", "typescript"], "topics": ["ai", "cohere", "llm", "openai", "typescript", "javascript", "nodejs", "claude", "large-language-models", "opensource", "anthropic", "gemini", "google", "gpt-4", "ollama", "rag", "vectordb", "google-gemini", "dspy", "webllm"], "urls": [], "use_cases": ["build typed structured LLM calls with validated outputs", "create DSPy-style prompt programs in TypeScript", "build LLM agents with memory and tool use", "optimize prompts and few-shot demos with GEPA", "build multi-step LLM workflows with branching and loops", "switch between OpenAI, Anthropic, Gemini, and local models", "build RAG pipelines with vector databases"], "what_it_is": "Ax is a TypeScript-first LLM programming framework implementing the DSPy model, providing typed signatures, agents, flows, and optimizers like GEPA across many LLM providers. The same semantic core is also compiled into Python, Java, C++, Go, and Rust libraries.", "when_to_avoid": ["you only need raw chat completions without structure or optimization", "you need a language not covered by the compiled libraries", "you prefer Python-native DSPy with its full ecosystem", "you want a no-code or UI-driven LLM builder"], "when_to_choose": ["you want DSPy-style prompt programming in TypeScript or Node.js", "you need typed, validated structured outputs from LLMs", "you want one framework spanning multiple LLM providers", "you need prompt optimization with metrics and teacher/student models", "you want the same LLM program model across several languages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ax", "repo": "ax-llm/ax", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.158718+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.697232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84f46c08a3c845e1db88d21875b470073846fdc0177cc707e59f4fafde4dfa65", "fetched_at": "2026-08-28T04:07:28.158718+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ax-llm/ax"}, {"content_hash": "43baf3cf894042063f751dc05351790acb31639f167f566bd405522ad5d4f169", "fetched_at": "2026-08-29T09:51:07.417059+00:00", "kind": "homepage", "missing": false, "url": "http://axllm.dev"}, {"content_hash": "a20e47b7055fa9d4efe222027172a5b95a59065f0f42d2991b3591f3fad7bf1c", "fetched_at": "2026-08-29T09:51:07.420446+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/api/ai"}, {"content_hash": "3d4999a6a3673d5bf43bd0c79ac9f9b3004ea8adecd2942eb52d57b082f0b677", "fetched_at": "2026-08-29T09:51:07.422555+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/skills"}, {"content_hash": "ff47f087449f59fd6ddb10ab1f602302fa24525a6c0d93195af6a6c2313455ed", "fetched_at": "2026-08-29T09:51:07.424376+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/optimization"}, {"content_hash": "99bd7645d3ff2b4d3f2e03b858379a85be46f51d1d31ca8cf242bc96be491fc2", "fetched_at": "2026-08-29T09:51:07.426453+00:00", "kind": "site_page", "missing": false, "url": "http://axllm.dev/typescript/concepts/telemetry"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 91, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1287, "days_push": 8, "days_rel": 8, "gap_med": 0.0, "n_releases_24m": 413}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}