Skip to content

hardik-wts/gitfork-cali

 
 

Repository files navigation

cali

🪄 An AI agent for building React Native apps


$ npx cali

Wait, what?

Cali is an AI agent that helps you build React Native apps. It takes all the utilities and functions of a React Native CLI and exposes them as tools to an LLM.

Thanks to that, an LLM can help you with your React Native app development, without the need to remember commands, spending time troubleshooting errors, and in the future, much more.

Under the hood, it uses Vercel AI SDK, @react-native-community/cli.

The default model is gpt-4o.

Note

You can change the default model by setting AI_MODEL env variable. We are currently evaluating how different models perform, so we might change the default model in the future.

Features

Cali is still in the early stages of development, but it already supports:

  • Build Automation: Running and building React Native apps on iOS and Android
  • Device Management: Listing and managing connected Android and iOS devices and simulators
  • Dependency Management: Install and manage npm packages and CocoaPods dependencies.
  • React Native Library Search: Searching and listing React Native libraries from React Native Directory

as well as various smaller utilities:

  • Port Forwarding: Use ADB to forward ports for Android devices.
  • Ruby Gems Installation: Install Ruby gems, including CocoaPods, for iOS projects.
  • Metro Bundler: Automatically start Metro bundler for React Native projects.

We are actively working on expanding its capabilities. If you would like to request a feature, please open an issue.

Examples

Building an app step-by-step

Promo-1.mp4

Building an app with a highly-specific task

Promo-2.mp4

Searching and installing a new React Native library

[TBD]

Troubleshooting an error

[TBD]

Prerequisites

In order to use Cali, you need to have an OpenAI API key. You can get one here. Once you have your key, you can set it as OPENAI_API_KEY env variable (either create a dotenv file or set it inline).

Note

In the future, you will be able to change the provider from OpenAI to other, including local and self-hosted models. If you are interested in this feature, please open an issue so we can prioritize it and make sure it brings the best DX.

Usage

Under the hood, Cali uses Vercel AI SDK. That means you can import all its tools into your existing project and use them for different purposes, without our interactive chat interface.

// import all tools
import { reactNativeTools, androidTools, iosTools } from "cali";

// use them in your project
import { generateText } from "ai";
await generateText({
  // other options
  tools: {
    ...reactNativeTools,
    ...androidTools,
    ...iosTools,
  },
});

Future requests

I like the idea of an AI agent for building React Native apps. I would like to play around with this idea in public, and see where it goes.

Feel free to open an issue or a discussion to suggest ideas or report bugs. Happy to hear from you! 👋

Special thanks

Special thanks to @jedirandy for donating the name cali on npm!

Made with ❤️ at Callstack

Cali is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. Callstack is a group of React and React Native geeks, contact us at hello@callstack.com if you need any help with these or just want to say hi!

Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥

About

AI agent for building React Native apps

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 76.5%
  • JavaScript 23.5%