{"id":51259670,"url":"https://github.com/zach-klippenstein/laygent","last_synced_at":"2026-06-29T11:01:46.163Z","repository":{"id":357960478,"uuid":"1218490418","full_name":"zach-klippenstein/laygent","owner":"zach-klippenstein","description":"The AI-native Compose layout for token-maxxers.","archived":false,"fork":false,"pushed_at":"2026-05-15T03:24:22.000Z","size":172,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T03:31:22.337Z","etag":null,"topics":["ai","ai-agents","compose-multiplatform","jetbrains-compose","jetpack-compose","layout","layout-engine"],"latest_commit_sha":null,"homepage":"https://zach-klippenstein.github.io/laygent/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zach-klippenstein.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-22T23:45:31.000Z","updated_at":"2026-05-15T03:24:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zach-klippenstein/laygent","commit_stats":null,"previous_names":["zach-klippenstein/laygent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zach-klippenstein/laygent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zach-klippenstein%2Flaygent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zach-klippenstein%2Flaygent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zach-klippenstein%2Flaygent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zach-klippenstein%2Flaygent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zach-klippenstein","download_url":"https://codeload.github.com/zach-klippenstein/laygent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zach-klippenstein%2Flaygent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34923767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","compose-multiplatform","jetbrains-compose","jetpack-compose","layout","layout-engine"],"created_at":"2026-06-29T11:01:43.257Z","updated_at":"2026-06-29T11:01:46.150Z","avatar_url":"https://github.com/zach-klippenstein.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laygent ![jetpack compose badge](https://img.shields.io/badge/Jetpack_Compose-supported-green) ![compose multiplatform badge](https://img.shields.io/badge/Jetbrains_Compose-supported-blue) ![ai-native badge](https://img.shields.io/badge/AI-native-purple)\n\n**Laygent is the AI-native Compose layout for token-maxxers.**\n\nDescribe the layout you want in plain English and the algorithm is written for you at runtime, then \ncached so your frames stay fast. The whole library is 100% AI-generated code — the humans just held\nthe keyboard.\n\n## Example\n\n```kotlin\nval config = LaygentConfig.defaultOpenAi(openAiApiKey = myOpenAiKey)\n\n@Composable\nfun Example() {\n  val state = rememberLaygentState(config) {\n    \"Arrange items in a 3-column grid with 8 dp of spacing between them.\"\n  }\n  \n  Laygent(state) {\n    repeat(12) {\n      Box(Modifier.size(50.dp).background(Color.Blue))\n    }\n  }\n}\n```\n\n## Installation\n\nThe library is published to Maven Central:\n\n```kotlin\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  implementation(\"com.zachklipp:laygent:0.1.0\")\n}\n```\n\n## Demos\n\n- **Desktop:** `./gradlew :demo:run` — full-featured Compose Desktop demo.\n- **Web:** `./gradlew :demo-web:wasmJsBrowserDevelopmentRun` — runs the same Laygent runtime in\n  the browser via Compose Multiplatform / wasmJs. Once it prints a localhost URL, open it and paste\n  an OpenAI key to drive the LLM-generated layout.\n\n## Targets\n\nThe `:laygent` library publishes for `jvm`, `iosArm64`, `iosSimulatorArm64`, `iosX64`, and\n`wasmJs`. The host JavaScript runtime is platform-specific:\n\n- `jvm` and the iOS targets use [quickjs-kt](https://github.com/dokar3/quickjs-kt).\n- `wasmJs` uses the browser's JS engine directly via `eval` and a `globalThis.layoutContext` bridge.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzach-klippenstein%2Flaygent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzach-klippenstein%2Flaygent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzach-klippenstein%2Flaygent/lists"}