{"id":27742044,"url":"https://github.com/ketupia/ash-studio","last_synced_at":"2025-10-12T06:48:29.155Z","repository":{"id":287745114,"uuid":"965662766","full_name":"ketupia/ash-studio","owner":"ketupia","description":"An experimental or starter site aimed at building AI development tools for the Ash Framework","archived":false,"fork":false,"pushed_at":"2025-04-18T22:07:16.000Z","size":444,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-28T16:56:45.204Z","etag":null,"topics":["ash","ash-ai"],"latest_commit_sha":null,"homepage":"https://ash-studio-demo.fly.dev","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ketupia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-04-13T16:46:19.000Z","updated_at":"2025-04-18T22:07:19.000Z","dependencies_parsed_at":"2025-04-13T17:44:20.694Z","dependency_job_id":"95fad7c8-1ce5-4349-9bff-88c65cbeeb71","html_url":"https://github.com/ketupia/ash-studio","commit_stats":null,"previous_names":["ketupia/ash-studio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ketupia/ash-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ketupia%2Fash-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ketupia%2Fash-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ketupia%2Fash-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ketupia%2Fash-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ketupia","download_url":"https://codeload.github.com/ketupia/ash-studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ketupia%2Fash-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010531,"owners_count":26084759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":["ash","ash-ai"],"created_at":"2025-04-28T16:38:51.332Z","updated_at":"2025-10-12T06:48:29.147Z","avatar_url":"https://github.com/ketupia.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 Ash Studio\n\nThis library is aims to build AI development tools for the [Ash Framework](https://ash-hq.org). It is not an official Ash module.\n\n## Ideas\n\nResource browser, live updating on compile, bidirectional sync w/ source code, tracing of actions that execute as they execute, resource graph visualizer w/ canvas instead of mermaid, monitor reactors as they run etc.\n\nThe premise is to have a single set of Ash resources that can be used by\n\n| Tool                         | UI  | Chat Bot | MCP Server |\n| ---------------------------- | :-: | :------: | :--------: |\n| ash.codegen --check          | ✅  |    ✅    |     ❌     |\n| ash.codegen --dry-run        | ✅  |    ✅    |     ❌     |\n| ash.codegen \u003cmigration_file\u003e | ✅  |    ✅    |     ❌     |\n| ash.gen.domain \u003cdomain_name\u003e | ✅  |    ✅    |     ❌     |\n| ash.gen.resource \u003cresource\u003e  | ✅  |    ❌    |     ❌     |\n\n## 🔧 Architecture Overview\n\n- **Ash Framework** — defines MCP services as embedded, stateless resources.\n- **Ash AI** — exposes the tools in a chat interface.\n- **Phoenix LiveView** — provides a chat interface and forms for human developers to interact with tools.\n\n## 📍 Goals\n\n- Let AI agents safely interact with your dev environment using domain-aware tools\n- Provide consistent, convention-driven automation surfaces for common Ash/Phoenix tasks\n- Keep humans in the loop with a LiveView UI\n\n---\n\n## 📦 Status\n\nThis is an experimental playground — feedback and contributions welcome.\n\n[Github Repo](https://github.com/ketupia/ash-studio)\n\n[See it here](https://ash-studio-demo.fly.dev) - The site will spin down after a period of inactivity; give it time to rehydrate on first request.\n\n## Installation\n\n### Mix Dependency\n\n      {:ash_studio, \"~\u003e 0.1\", github: \"ketupia/ash_studio\", only: :dev},\n\n### Config\n\n    Add AshStudio.Tasks to your app's `:ash_domains`\n    ```elixir\n        config :your_app,\n            ash_domains: [AshStudio.Tasks]\n    ```\n\n    Add :ash_studio to your app's `:host_app` config\n    ```elixir\n        config :ash_studio,\n            check_migrations: true,\n            ash_domains: [AshStudio.Tasks],\n            host_app: :ash_studio_demo,\n            open_ai_model: \"gpt-4o-mini\"\n    ```\n\n### Tailwind\n\n    Add ash_studio files to your module.exports\n    ```\n        module.exports = {\n            content: [\n                \"../deps/ash_studio/**/*.*ex\",\n                // other content paths...\n    ]\n\n}\n\n````\n\n### Routes\n\n    In your router file\n\n    ```elixir\n        import AshStudioWeb.Router\n\n        ash_studio_routes(path: \"/studio\", pipe_through: [:browser])\n    ```\n\n    You must use `/studio` as the path presently.\n\n### Open AI Config\n\n    Add your OpenAI API key as an environment variable.\n    e.g.\n    ```\n        System.put_env(\"open_api_key\", \"your key here\")\n    ```\n\n    Specify the Open AI model to use\n    ```elixir\n        config :ash_studio, :open_ai_model, \"gpt-4o-mini\"\n    ```\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fketupia%2Fash-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fketupia%2Fash-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fketupia%2Fash-studio/lists"}