• Stars
    star
    4,068
  • Rank 10,679 (Top 0.3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 1 year ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A CLI that converts natural language to shell commands.

AI Shell logo

A CLI that converts natural language to shell commands.

Current version

Gif Demo

Inspired by the GitHub Copilot X CLI, but open source for everyone.


AI Shell

Setup

The minimum supported version of Node.js is v14

  1. Install ai shell:

    npm install -g @builder.io/ai-shell
  2. Retrieve your API key from OpenAI

    Note: If you haven't already, you'll have to create an account and set up billing.

  3. Set the key so ai-shell can use it:

    ai config set OPENAI_KEY=<your token>

    This will create a .ai-shell file in your home directory.

Usage

ai <prompt>

For example:

ai list all log files

Then you will get an output like this, where you can choose to run the suggested command, revise the command via a prompt, or cancel:

β—‡  Your script:
β”‚
β”‚  find . -name "*.log"
β”‚
β—‡  Explanation:
β”‚
β”‚  1. Searches for all files with the extension ".log" in the current directory and any subdirectories.
β”‚
β—†  Run this script?
β”‚  ● βœ… Yes (Lets go!)
β”‚  β—‹ πŸ“ Revise
β”‚  β—‹ ❌ Cancel
β””

Special characters

Note that some shells handle certain characters like the ? or * or things that look like file paths specially. If you are getting strange behaviors, you can wrap the prompt in quotes to avoid issues, like below:

ai 'what is my ip address'

Chat mode

Chat demo

ai chat

With this mode, you can engage in a conversation with the AI and receive helpful responses in a natural, conversational manner directly through the CLI:

β”Œ  Starting new conversation
β”‚
β—‡  You:
β”‚  how do I serve a redirect in express
β”‚
β—‡  AI Shell:

In Express, you can use the `redirect()` method to serve a redirect. The `redirect()` method takes one argument, which is the URL that you want to redirect to.

Here's an example:

\`\`\`js
app.get('/oldurl', (req, res) => {
  res.redirect('/newurl');
});
\`\`\`

Silent mode (skip explanations)

You can disable and skip the explanation section by using the flag -s or --silent

ai -s list all log files

or save the option as a preference using this command:

ai config set SILENT_MODE=true

Custom API endpoint

You can custom OpenAI API endpoint to set OPENAI_API_ENDPOINT(default: https://api.openai.com/v1οΌ‰

ai config set OPENAI_API_ENDPOINT=<your proxy endpoint>

Set Language

Language UI

The AI Shell's default language is English, but you can easily switch to your preferred language by using the corresponding language keys, as shown below:

Language Key
English en
Simplified Chinese zh-Hans
Traditional Chinese zh-Hant
Spanish es
Japanese jp
Korean ko
French fr
German de
Russian ru
Ukrainian uk
Vietnamese vi
Arabic ar
Portuguese pt
Turkish tr

For instance, if you want to switch to Simplified Chinese, you can do so by setting the LANGUAGE value to zh-Hans:

ai config set LANGUAGE=zh-Hans

This will set your language to Simplified Chinese.

Config UI

To use a more visual interface to view and set config options you can type:

ai config

To get an interactive UI like below:

β—†  Set config:
β”‚  β—‹ OpenAI Key
β”‚  β—‹ OpenAI API Endpoint
β”‚  β—‹ Silent Mode
β”‚  ● Model (gpt-3.5-turbo)
β”‚  β—‹ Language
β”‚  β—‹ Cancel
β””

Upgrading

Check the installed version with:

ai --version

If it's not the latest version, run:

npm update -g @builder.io/ai-shell

Or just use AI shell:

ai update

Common Issues

429 error

Some users are reporting a 429 from OpenAI. This is due to incorrect billing setup or excessive quota usage. Please follow this guide to fix it.

You can activate billing at this link. Make sure to add a payment method if not under an active grant from OpenAI.

Motivation

I am not a bash wizard, and am dying for access to the copilot CLI, and got impatient.

Contributing

If you want to help fix a bug or implement a feature in Issues (tip: look out for the help wanted label), checkout the Contribution Guide to learn how to setup the project.

Credit

  • Thanks to GitHub Copilot for their amazing tools and the idea for this
  • Thanks to Hassan and his work on aicommits which inspired the workflow and some parts of the code and flows

Community

Come join the Builder.io discord and chat with us in the #ai-shell room



Made with love by Builder.io

More Repositories

1

qwik

Instant-loading web apps, without effort
TypeScript
20,052
star
2

gpt-crawler

Crawl a site to generate knowledge files to create your own custom GPT from a URL
TypeScript
18,484
star
3

partytown

Relocate resource intensive third-party scripts off of the main thread and into a web worker. πŸŽ‰
TypeScript
12,971
star
4

mitosis

Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
TypeScript
12,266
star
5

builder

Visual Development for React, Vue, Svelte, Qwik, and more
TypeScript
7,258
star
6

figma-html

Builder.io for Figma: AI generation, export to code, import from web
TypeScript
3,117
star
7

micro-agent

An AI agent that writes (actually useful) code for you
TypeScript
2,663
star
8

gpt-assistant

An experiment to give an autonomous GPT agent access to a browser and have it accomplish tasks
TypeScript
512
star
9

hydration-overlay

Overlay for hydration errors with explicit diff between renders.
CSS
477
star
10

framework-benchmarks

Test each framework for it's performance cost
TypeScript
473
star
11

nextjs-shopify

The ultimate starter for headless Shopify stores
TypeScript
441
star
12

vscode

Builder.io for VSCode - turn designs into code!
TypeScript
174
star
13

SSDiff

TypeScript
139
star
14

build.

A new visual programming language that reads and writes Typescript and Javascript
TypeScript
128
star
15

builder-shopify-hydrogen

Builder.io Visual CMS + page builder example with Shopify Hydrogen
TypeScript
77
star
16

gatsby-starter-builder

Gatsby example with drag and drop page building
JavaScript
68
star
17

nextjs-edge-personalization-ab-testing

High performance personalization & a/b testing example using Next.js, Edge Middleware, and Builder.io
TypeScript
58
star
18

snap

The fastest web framework
TypeScript
50
star
19

ts-lite

Compiled TypeScript. Generates Go, Swift, Kotlin, WASM, Binary
JavaScript
50
star
20

gatsby-builder-shopify

A starter for Gatsby + Shopify + Builder.io
TypeScript
32
star
21

qwik-city-build

`@builder.io/qwik-city` build artifacts from https://github.com/organizations/BuilderIO/qwik
JavaScript
25
star
22

qwik-tw-vercel-starter-kit

A starter kit for Qwik on Vercel
TypeScript
19
star
23

demo-editor

JavaScript
12
star
24

nextjs-builder-edge-personalization

TypeScript
11
star
25

nextjs-builder-starter

TypeScript
11
star
26

edge-personalize

Personalize and a/b test your static pages at the edge. Static speed with dynamic optimizations!
TypeScript
9
star
27

headlessapp.store

TypeScript
8
star
28

react-design-system-demo

JavaScript
8
star
29

sfcc-composable-storefront-example

SFCC + Builder.io Composable Storefront
JavaScript
8
star
30

qwik-city-e2e

Use to test Qwik City on each server
HTML
6
star
31

qwik-docs-es

TypeScript
6
star
32

this-package-uses-fetch

6
star
33

qwik-build

Build artifacts from https://github.com/organizations/BuilderIO/qwik
JavaScript
6
star
34

blog-example

Builder.io blog example
JavaScript
6
star
35

jsx-qwik-worker-post

A repo showing worker$
JavaScript
6
star
36

perf-experiments

Performance experiments
Astro
6
star
37

http-debug-proxy

This project contains a set up to create a HTTP proxy for the https://cdn.builder.io/ endpoint.
JavaScript
6
star
38

qwik-react-framer-motion

A demo for React Framer Motion inside a Qwik application
TypeScript
5
star
39

resumable-react-post

The code for the blog post: "Resumable React: How To Use React Inside Qwik"
TypeScript
5
star
40

builder-fiddle-demos

Demos of fun stuff for Builder fiddles
TypeScript
5
star
41

nextjs-app-router-example

TypeScript
5
star
42

vcp-design-systems-examples

Starters for experimenting with VCP and different design systems
TypeScript
5
star
43

builder-qwik-example

An example project using Builder.io's drag and drop headless CMS with Qwik
TypeScript
4
star
44

personalization-utils

TypeScript
3
star
45

mitosis-build

Build artifacts from https://github.com/BuilderIO/mitosis
3
star
46

qwik-create-cli-build

JavaScript
3
star
47

kibocommerce-nextjs-starter

A KiboCommerce + Builder.io store built on NextJS
TypeScript
3
star
48

builder-swift

Swift SDK for Builder.io
Swift
3
star
49

nextjs-elasticpath

TypeScript
2
star
50

qwik-raw-data

1
star
51

qase-for-qwik

A demo repo to showcase Qwik
TypeScript
1
star
52

gatsby-builder-transform-images

JavaScript
1
star
53

block-publish

CLI tool to block directly using npm publish
JavaScript
1
star
54

qwik-docs

WIP Qwik-docs
JavaScript
1
star
55

unified-demo

Unified Demo of builder use cases with next.js app router
TypeScript
1
star
56

qwik-labs-build

Continues build artifacts
JavaScript
1
star