Flame AI is intended to be contributor-friendly. It's built on top of Gluegun, which is a popular node CLI framework also built by Infinite Red.
- Clone this repo or your fork (
git clone git@github.com:infinitered/flame.git
) yarn install
yarn link
flame --help
Like most Gluegun command-line apps, the commands live in src/commands
and there are utility functions in src/utils
. There's also a bunch of ai related functionality in src/ai
. There are a few React Native specific features in src/react-native
. Exported types are in src/types.ts
.
- We want to keep the folder structure very flat. We don't want super deep nested folders.
- Generally speaking, keep the commands as thin as possible, primarily focused on user interaction. Put the bulk of the logic in other folders.
- If something is React Native specific, put it in the
src/reactnative
folder. - If you're building something for a different technology and it's specific to that technology, you can make another folder for it. For example,
src/flutter
. - If you're building something that's not specific to any technology, put it in the
src/utils
folder. - If you're building something that's very AI related, put it in the
src/ai
folder. Mostly things like accessing other AI cloud providers/LLMs. (Most of the AI code will still reside inutils
) - The
src/recipes
folder is for recipes that are used by theexperimental convert
command. They are written in plain English and are mostly a list of examples. See theAsyncStorage-to-mmkv
recipe for an example. - Keep source files small. This means a lot of small files will be created, but that's okay. This helps us build Flame AI using Flame AI. :-)
- Add local types to the top of files, and exported types to
src/types.ts
. Bias towardtype
overinterface
.