wasp/mage
Martin Šošić 994a58f0dc
Wasp ai cli mage (#1601)
* Improved Wasp AI CLI experience.

* fix

* Added CLI Usage, polished CLI commands.

* Added choice of temperature.

* Added styling.

* Added more sophisticated, terminal-only styling.

* fix

* Updated Mage to use new Wasp CLI + added some messaging to CLI.

* fix

* Created wasp-ai/README, updated waspc/README.

* Moved wasp-ai/ to mage/.

* Final polishing (docs, readmes, messaging).

* fix

* Added tests for LogMsg.

* Updated versions of test apps to 0.12.

* fix

* fix

* Update mage/README.md

* fix

* fix
2023-12-22 15:14:38 +01:00
..
migrations Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
src Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
.gitignore Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
.prettierrc Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
.wasproot Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
Dockerfile Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
fly-client.toml Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
fly-server.toml Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
main.wasp Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
postcss.config.cjs Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
README.md Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00
tailwind.config.cjs Wasp ai cli mage (#1601) 2023-12-22 15:14:38 +01:00

Mage

This directory contains the source code of Mage (aka "GPT Web App Generator" aka "Wasp AI"): a Wasp app (so a full-stack web app) that allows you to create a new Wasp app (inception :)!) from just a short description. It uses ChatGPT in a smart way to accomplish this (so it would be clasified as an AI code agent).

Mage is hosted at https://usemage.ai and you can use it there for free.

You can learn more about it here and here.

Running locally

Mage is really just a client / UI for calling "Wasp AI", which is AI logic that does all the heavy lifting, and is integrated into Wasp's CLI: wasp. So, if you want to generate Wasp apps via AI locally, on your machine, with your OpenAI keys and your choice of models/parameters, we recommend NOT running the Mage app locally, because it is not so easy, instead we recommend you to do it directly via wasp CLI, with wasp new or wasp new:ai commands. Check our docs on how to install wasp CLI: https://wasp-lang.dev/docs/quick-start#installation .

If you still want to run Mage web app locally for some specific reason, most likely because you want to contribute, you will need to do the following:

  1. Copy .env.server.example into .env.server and fill in the missing values. You will basically need to provide Github and Google OAuth creds (and first create OAuth apps on both Github and Google if you don't have them yet - if you are a member of Wasp team ask for dev creds, if not you will have to create your own OAuth apps).
  2. Run wasp db start and then wasp start! It might ask you to do wasp db migrate-dev, do that if needed.
  3. When running Mage locally, it will be looking for wasp-cli binary on your machine to use. To satisfy this requirement, you can go to waspc/ dir (just next to this one) and run ./run install there. You will want to check though if that Wasp version matches the version Mage expects (check its Dockerfile to see which version of Wasp it expects). If building waspc/ is too complex for you (you don't have Haskell toolchain set up, taking too long, ...), you can go into the code of Mage, find where it calls wasp-cli and modify that temporarily to call wasp instead.

Developing

Updating Wasp version in Dockerfile

Keep in mind that Mage, when deployed, will install the version of Wasp specified in its Dockerfile. So, make sure to update that version to be in sync with the version of Wasp that it was developed against. Most often that should be the current version of Wasp on main, even if not released yet.

Deployment

Mage is currently deployed on Wasp's Fly.io cloud.

Same as the rest of Wasp (blog/docs, CLI, ...), the latest deployed version is tracked on release branch.

So if you want to deploy new version of Mage, you should get it in wanted state on release branch, and then deploy from there.

Also, before deploying, check that version of wasp in Dockerfile makes sense.

To deploy it, just run wasp deploy fly deploy. You might want to add --org wasp if needed.

FAQ

Q: What is the difference between Wasp AI and Mage? Are those the same thing? A: When we say "Wasp AI" we refer to logic implemented in wasp CLI, while when we say "Mage" we refer to the Mage web app that really serves as a client for "Wasp AI" (calls it in the background). That said, we sometimes use these interchangeably.