https://github.com/ketupia/ash-studio
An experimental or starter site aimed at building AI development tools for the Ash Framework
https://github.com/ketupia/ash-studio
ash ash-ai
Last synced: 3 months ago
JSON representation
An experimental or starter site aimed at building AI development tools for the Ash Framework
- Host: GitHub
- URL: https://github.com/ketupia/ash-studio
- Owner: ketupia
- License: mit
- Created: 2025-04-13T16:46:19.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-18T22:07:16.000Z (9 months ago)
- Last Synced: 2025-04-28T16:56:45.204Z (9 months ago)
- Topics: ash, ash-ai
- Language: Elixir
- Homepage: https://ash-studio-demo.fly.dev
- Size: 434 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🧠 Ash Studio
This library is aims to build AI development tools for the [Ash Framework](https://ash-hq.org). It is not an official Ash module.
## Ideas
Resource 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.
The premise is to have a single set of Ash resources that can be used by
| Tool | UI | Chat Bot | MCP Server |
| ---------------------------- | :-: | :------: | :--------: |
| ash.codegen --check | ✅ | ✅ | ❌ |
| ash.codegen --dry-run | ✅ | ✅ | ❌ |
| ash.codegen | ✅ | ✅ | ❌ |
| ash.gen.domain | ✅ | ✅ | ❌ |
| ash.gen.resource | ✅ | ❌ | ❌ |
## 🔧 Architecture Overview
- **Ash Framework** — defines MCP services as embedded, stateless resources.
- **Ash AI** — exposes the tools in a chat interface.
- **Phoenix LiveView** — provides a chat interface and forms for human developers to interact with tools.
## 📍 Goals
- Let AI agents safely interact with your dev environment using domain-aware tools
- Provide consistent, convention-driven automation surfaces for common Ash/Phoenix tasks
- Keep humans in the loop with a LiveView UI
---
## 📦 Status
This is an experimental playground — feedback and contributions welcome.
[Github Repo](https://github.com/ketupia/ash-studio)
[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.
## Installation
### Mix Dependency
{:ash_studio, "~> 0.1", github: "ketupia/ash_studio", only: :dev},
### Config
Add AshStudio.Tasks to your app's `:ash_domains`
```elixir
config :your_app,
ash_domains: [AshStudio.Tasks]
```
Add :ash_studio to your app's `:host_app` config
```elixir
config :ash_studio,
check_migrations: true,
ash_domains: [AshStudio.Tasks],
host_app: :ash_studio_demo,
open_ai_model: "gpt-4o-mini"
```
### Tailwind
Add ash_studio files to your module.exports
```
module.exports = {
content: [
"../deps/ash_studio/**/*.*ex",
// other content paths...
]
}
````
### Routes
In your router file
```elixir
import AshStudioWeb.Router
ash_studio_routes(path: "/studio", pipe_through: [:browser])
```
You must use `/studio` as the path presently.
### Open AI Config
Add your OpenAI API key as an environment variable.
e.g.
```
System.put_env("open_api_key", "your key here")
```
Specify the Open AI model to use
```elixir
config :ash_studio, :open_ai_model, "gpt-4o-mini"
```
````