{"adoption": {"forks": 91, "observed_at": "2026-08-28T04:03:32.348590+00:00", "stars": 1087}, "canonical_url": "https://ross.abutalabs.com/products/aiconfig", "card": {"archived": false, "artifact_type": "framework", "description": "AIConfig is a config-based framework to build generative AI applications.", "domain": ["large-language-models", "developer-tools", "artificial-intelligence"], "enriched": true, "function": ["prompt-engineering", "llm-inference", "configuration-management", "developer-tools", "sdk"], "health_score": 66, "homepage": "https://aiconfig.lastmileai.dev", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["lastmile-ai/aiconfig"], "name": "lastmile-ai/aiconfig", "platform": ["python", "cross-platform", "editor-plugin"], "pushed_at": "2026-02-10T02:57:20+00:00", "repo": "lastmile-ai/aiconfig", "stars": 1087, "tags": ["llm-ops", "prompt-management", "config-as-code", "generative-ai", "vscode-extension", "version-control", "automation", "nodejs"], "topics": ["ai", "developer-tools", "generative-ai", "llm", "llm-ops"], "urls": [], "use_cases": ["manage llm prompts as version-controlled config files", "separate prompt engineering from application code", "prototype and edit ai prompts in vs code", "evaluate and monitor generative ai model parameters", "build production generative ai applications with python or node", "share and iterate on prompt configs across a team"], "what_it_is": "AIConfig is an open-source framework that manages generative AI prompts, models, and model parameters as JSON-serializable configs, separating AI behavior from application code. It includes Python and Node SDKs plus a VS Code editor extension for prototyping, versioning, and evaluating AI prompts.", "when_to_avoid": ["you need a full llm observability or tracing platform rather than prompt config management", "your app uses a single hardcoded prompt and simple calls", "you need fine-grained agent orchestration beyond prompt/model config", "you work outside Python and Node.js ecosystems"], "when_to_choose": ["you want prompts and model parameters version controlled separately from code", "you build llm apps in Python or Node.js and need a config-driven workflow", "you want a visual editor for iterating on prompts", "you need reproducible, evaluable generative AI behavior"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/aiconfig", "repo": "lastmile-ai/aiconfig", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "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:03:32.348590+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.348590+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:28.163073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46aed5fa053106503f9bb77ebce64f2d4edcb5d65d7ef63f166b4be51fd34328", "fetched_at": "2026-08-28T04:03:32.348590+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lastmile-ai/aiconfig"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 66, "longevity": 78, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1097, "days_push": 204, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}