{"data":{"slug":"lmnr-ai-lmnr","name":"lmnr","tagline":"Laminar - open-source observability platform for AI agents","github_url":"https://github.com/lmnr-ai/lmnr","owner":"lmnr-ai","repo":"lmnr","owner_avatar_url":"https://avatars.githubusercontent.com/u/161496104?v=4","primary_language":"TypeScript","stars":3265,"forks":239,"topics":["agent-observability","agents","ai","ai-observability","aiops","analytics","developer-tools","evals","evaluation","llm-evaluation","llm-observability","llmops","monitoring","observability","open-source","rust","rust-lang","self-hosted","ts","typescript"],"archived":false,"github_pushed_at":"2026-09-17T23:58:29+00:00","maintenance_label":"Very active","stars_delta_30d":162,"url":"https://www.graphcanon.com/tools/lmnr-ai-lmnr","markdown_url":"https://www.graphcanon.com/tools/lmnr-ai-lmnr.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/lmnr-ai-lmnr","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=lmnr-ai-lmnr","description":"Laminar - open-source observability platform purpose-built for AI agents. YC S24.","homepage_url":"https://laminar.sh","license":"Apache-2.0","open_issues":115,"watchers":9,"ai_summary":"Laminar is an open-source observability platform designed for monitoring and evaluating AI agents. It supports self-hosting via Docker Compose and offers a managed platform for ease of use.","readme_excerpt":"## Getting started\n\nThe fastest and easiest way to get started is with our managed platform -> [laminar.sh](https://laminar.sh)\n\n---\n\n### Self-hosting with Docker compose\n\nLaminar is very easy to self-host locally. For a quick start, clone the repo and start the services with docker compose:\n```sh\ngit clone https://github.com/lmnr-ai/lmnr\ncd lmnr\ndocker compose up -d\n```\n\nThis will spin up a lightweight but full-featured version of the stack. This is good for a quickstart \nor for lightweight usage. You can access the UI at http://localhost:5667 in your browser.\n\nYou will also need to properly configure the SDK, with `baseUrl` and correct ports. See [guide on self-hosting](https://laminar.sh/docs/hosting-options#self-hosted-docker-compose).\n\nFor production environment, we recommend using our [managed platform](https://laminar.sh) or `docker compose -f docker-compose-full.yml up -d`.\n\n#### Upgrading existing self-hosted installations\n\nThe ClickHouse configuration disables internal telemetry logs that are not useful\nfor a single-node installation and retains query and error logs for three days.\nAfter pulling this change, recreate the ClickHouse container to apply the\nconfiguration. The examples below use `docker-compose.yml`; pass `-f` with the\nCompose file used by your deployment when it differs:\n\n```sh\ndocker compose up -d --force-recreate clickhouse\n```\n\nDisabling a system log stops new writes but does not clear an existing table.\nTo reclaim its disk space while preserving the table structure, truncate the\ndisabled log tables after ClickHouse restarts:\n\n```sh\ndocker compose exec -T clickhouse clickhouse-client --multiquery <<'SQL'\nTRUNCATE TABLE IF EXISTS system.trace_log;\nTRUNCATE TABLE IF EXISTS system.text_log;\nTRUNCATE TABLE IF EXISTS system.part_log;\nTRUNCATE TABLE IF EXISTS system.metric_log;\nTRUNCATE TABLE IF EXISTS system.asynchronous_metric_log;\nTRUNCATE TABLE IF EXISTS system.background_schedule_pool_log;\nTRUNCATE TABLE IF EXISTS system.query_metric_log;\nTRUNCATE TABLE IF EXISTS system.query_thread_log;\nTRUNCATE TABLE IF EXISTS system.query_views_log;\nTRUNCATE TABLE IF EXISTS system.session_log;\nTRUNCATE TABLE IF EXISTS system.crash_log;\nTRUNCATE TABLE IF EXISTS system.opentelemetry_span_log;\nTRUNCATE TABLE IF EXISTS system.zookeeper_log;\nTRUNCATE TABLE IF EXISTS system.blob_storage_log;\nTRUNCATE TABLE IF EXISTS system.processors_profile_log;\nTRUNCATE TABLE IF EXISTS system.asynchronous_insert_log;\nSQL\n```\n\nWhen ClickHouse applies the new TTL to an existing `query_log` or `error_log`,\nit may rename the previous table with a numeric suffix such as `query_log_0`.\nInspect any suffixed tables before dropping them if you also want to reclaim\ntheir historical data.\n\n---\n\n# matching your deployment. Model ids are deployment names, so set LLM_MODEL_*","github_created_at":"2024-08-29T03:45:28+00:00","created_at":"2026-07-07T17:42:23.728137+00:00","updated_at":"2026-09-20T04:30:48.053974+00:00","categories":[{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"},{"slug":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"}],"tags":[{"slug":"agent-observability","name":"agent-observability"},{"slug":"ai-observability","name":"ai-observability"},{"slug":"aiops","name":"aiops"},{"slug":"llm-observability","name":"llm-observability"},{"slug":"llmops","name":"llmops"},{"slug":"monitoring","name":"monitoring"},{"slug":"observability","name":"observability"},{"slug":"self-hosted","name":"self-hosted"}],"trust":{"provenance":{"is_fork":false,"github_id":849139885,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-18T08:26:11.991Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":5,"days_since_push":0,"last_release_at":"2026-09-13T21:04:16Z","stars_delta_30d":162,"open_issues_delta_30d":18},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-09-18T08:26:13.632Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-18T08:26:10.912Z"},"deploy":{"source":"dockerfile:docker-compose.yml","self_host":true,"observed_at":"2026-09-18T08:26:10.912Z","managed_saas":false},"languages":{"value":["typescript"],"source":"github.language","observed_at":"2026-09-18T08:26:10.912Z"},"has_docker":{"value":true,"source":"dockerfile:docker-compose.yml","observed_at":"2026-09-18T08:26:10.912Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-09-18T08:26:10.912Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Use lmnr when you need a comprehensive observability solution for AI agents that supports both self-hosting and a managed platform.","Consider lmnr if you are working with TypeScript and Rust, as it is built with these languages and offers native support for them.","Leverage lmnr for its detailed monitoring and evaluation capabilities, especially if you are looking for a platform that can handle both lightweight and production environments."],"when_not_to_use":["Avoid lmnr if you require a platform that does not support self-hosting or if you prefer not to use Docker Compose for deployment.","Do not use lmnr if you are looking for a solution that is not open-source or if you need a platform that is not licensed under Apache-2.0.","If your project does not involve AI agents or if you do not need the specific observability features provided by lmnr, consider other tools."],"source":"enrich:decision_facts","observed_at":"2026-09-18T11:45:28.648Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"Laminar, or lmnr, is an open-source observability platform for AI agents, offering both a managed platform and self-hosting options via Docker Compose."}]}}