forked from stackblitz/bolt.new
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
aa1e848
commit bcf3c8a
Showing
1 changed file
with
142 additions
and
190 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,242 +1,194 @@ | ||
[![Bolt.new: AI-Powered Full-Stack Web Development in the Browser](./public/social_preview_index.jpg)](https://bolt.new) | ||
|
||
# Bolt.diy (Previously oTToDev) | ||
# Bolt.diy | ||
[![GitHub](https://img.shields.io/badge/GitHub-Bolt.diy-181717?style=for-the-badge&logo=github)](https://github.com/stackblitz-labs/bolt.diy) | ||
[![Discourse](https://img.shields.io/badge/Discourse-Community-blue?style=for-the-badge&logo=discourse)](https://thinktank.ottomator.ai/) | ||
[![Twitter](https://img.shields.io/badge/Twitter-@bolt__diy-1DA1F2?style=for-the-badge&logo=x)](https://x.com/bolt_diy) | ||
[![Bluesky](https://img.shields.io/badge/Bluesky-bolt.diy-3178C6?style=for-the-badge)](https://bsky.app/profile/bolt.diy) | ||
|
||
Welcome to Bolt.diy, the official open source version of Bolt.new (previously known as oTToDev and Bolt.new ANY LLM), which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK! See the instructions below for running this locally and extending it to include more models. | ||
> AI-Powered Full-Stack Web Development in Your Browser (Previously known as oTToDev) | ||
Check the [Bolt.diy Docs](https://stackblitz-labs.github.io/bolt.diy/) for more information. This documentation is still being updated after the transfer. | ||
[![Bolt.new Preview](./public/social_preview_index.jpg)](https://bolt.new) | ||
|
||
Bolt.diy was originally started by [Cole Medin](https://www.youtube.com/@ColeMedin) but has quickly grown into a massive community effort to build the BEST open source AI coding assistant! | ||
## 🚀 Overview | ||
|
||
## Join the community for Bolt.diy! | ||
Bolt.diy is the official open-source version of Bolt.new that empowers you to choose your preferred LLM for each prompt. Build, test, and deploy full-stack applications directly in your browser—no local setup required. | ||
|
||
https://thinktank.ottomator.ai | ||
### Supported LLM Providers | ||
- OpenAI | ||
- Anthropic | ||
- Ollama | ||
- OpenRouter | ||
- Gemini | ||
- LMStudio | ||
- Mistral | ||
- xAI | ||
- HuggingFace | ||
- DeepSeek | ||
- Groq | ||
- TogatherAI | ||
- And more via Vercel AI SDK! | ||
|
||
📚 For detailed information, visit the [Bolt.diy Documentation](https://stackblitz-labs.github.io/bolt.diy/). | ||
|
||
## Requested Additions - Feel Free to Contribute! | ||
## 🌟 What Makes Bolt Different? | ||
|
||
- ✅ OpenRouter Integration (@coleam00) | ||
- ✅ Gemini Integration (@jonathands) | ||
- ✅ Autogenerate Ollama models from what is downloaded (@yunatamos) | ||
- ✅ Filter models by provider (@jasonm23) | ||
- ✅ Download project as ZIP (@fabwaseem) | ||
- ✅ Improvements to the main Bolt.new prompt in `app\lib\.server\llm\prompts.ts` (@kofi-bhr) | ||
- ✅ DeepSeek API Integration (@zenith110) | ||
- ✅ Mistral API Integration (@ArulGandhi) | ||
- ✅ "Open AI Like" API Integration (@ZerxZ) | ||
- ✅ Ability to sync files (one way sync) to local folder (@muzafferkadir) | ||
- ✅ Containerize the application with Docker for easy installation (@aaronbolton) | ||
- ✅ Publish projects directly to GitHub (@goncaloalves) | ||
- ✅ Ability to enter API keys in the UI (@ali00209) | ||
- ✅ xAI Grok Beta Integration (@milutinke) | ||
- ✅ LM Studio Integration (@karrot0) | ||
- ✅ HuggingFace Integration (@ahsan3219) | ||
- ✅ Bolt terminal to see the output of LLM run commands (@thecodacus) | ||
- ✅ Streaming of code output (@thecodacus) | ||
- ✅ Ability to revert code to earlier version (@wonderwhy-er) | ||
- ✅ Cohere Integration (@hasanraiyan) | ||
- ✅ Dynamic model max token length (@hasanraiyan) | ||
- ✅ Better prompt enhancing (@SujalXplores) | ||
- ✅ Prompt caching (@SujalXplores) | ||
- ✅ Load local projects into the app (@wonderwhy-er) | ||
- ✅ Together Integration (@mouimet-infinisoft) | ||
- ✅ Mobile friendly (@qwikode) | ||
- ✅ Better prompt enhancing (@SujalXplores) | ||
- ✅ Attach images to prompts (@atrokhym) | ||
- ✅ Detect package.json and commands to auto install and run preview for folder and git import (@wonderwhy-er) | ||
- ⬜ **HIGH PRIORITY** - Prevent Bolt from rewriting files as often (file locking and diffs) | ||
- ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start) | ||
- ⬜ **HIGH PRIORITY** - Run agents in the backend as opposed to a single model call | ||
- ⬜ Deploy directly to Vercel/Netlify/other similar platforms | ||
- ⬜ Have LLM plan the project in a MD file for better results/transparency | ||
- ⬜ VSCode Integration with git-like confirmations | ||
- ⬜ Upload documents for knowledge - UI design templates, a code base to reference coding style, etc. | ||
- ⬜ Voice prompting | ||
- ⬜ Azure Open AI API Integration | ||
- ⬜ Perplexity Integration | ||
- ⬜ Vertex AI Integration | ||
|
||
## Bolt.new: AI-Powered Full-Stack Web Development in the Browser | ||
|
||
Bolt.new (and by extension Bolt.diy) is an AI-powered web development agent that allows you to prompt, run, edit, and deploy full-stack applications directly from your browser—no local setup required. If you're here to build your own AI-powered web dev agent using the Bolt open source codebase, [click here to get started!](./CONTRIBUTING.md) | ||
|
||
## What Makes Bolt.new Different | ||
|
||
Claude, v0, etc are incredible- but you can't install packages, run backends, or edit code. That’s where Bolt.new stands out: | ||
|
||
- **Full-Stack in the Browser**: Bolt.new integrates cutting-edge AI models with an in-browser development environment powered by **StackBlitz’s WebContainers**. This allows you to: | ||
- Install and run npm tools and libraries (like Vite, Next.js, and more) | ||
- Run Node.js servers | ||
- Interact with third-party APIs | ||
- Deploy to production from chat | ||
- Share your work via a URL | ||
|
||
- **AI with Environment Control**: Unlike traditional dev environments where the AI can only assist in code generation, Bolt.new gives AI models **complete control** over the entire environment including the filesystem, node server, package manager, terminal, and browser console. This empowers AI agents to handle the whole app lifecycle—from creation to deployment. | ||
|
||
Whether you’re an experienced developer, a PM, or a designer, Bolt.new allows you to easily build production-grade full-stack applications. | ||
|
||
For developers interested in building their own AI-powered development tools with WebContainers, check out the open-source Bolt codebase in this repo! | ||
Unlike traditional AI coding assistants, Bolt.diy offers: | ||
|
||
## Setup | ||
### 🔧 Full-Stack Development in Browser | ||
- Install and run npm packages | ||
- Execute Node.js servers | ||
- Interact with third-party APIs | ||
- Deploy to production from chat | ||
- Share via URL | ||
|
||
Many of you are new users to installing software from Github. If you have any installation troubles reach out and submit an "issue" using the links above, or feel free to enhance this documentation by forking, editing the instructions, and doing a pull request. | ||
### 🤖 Complete AI Environment Control | ||
- Full filesystem access | ||
- Node server management | ||
- Package manager integration | ||
- Terminal access | ||
- Browser console control | ||
|
||
1. Install Git from https://git-scm.com/downloads | ||
## 🛠️ Installation | ||
|
||
2. Install Node.js from https://nodejs.org/en/download/ | ||
### Prerequisites | ||
1. [Git](https://git-scm.com/downloads) | ||
2. [Node.js](https://nodejs.org/en/download/) | ||
3. [Docker](https://www.docker.com/) (optional, for containerized setup) | ||
|
||
Pay attention to the installer notes after completion. | ||
### Option 1: Standard Setup | ||
|
||
On all operating systems, the path to Node.js should automatically be added to your system path. But you can check your path if you want to be sure. On Windows, you can search for "edit the system environment variables" in your system, select "Environment Variables..." once you are in the system properties, and then check for a path to Node in your "Path" system variable. On a Mac or Linux machine, it will tell you to check if /usr/local/bin is in your $PATH. To determine if usr/local/bin is included in $PATH open your Terminal and run: | ||
|
||
``` | ||
echo $PATH . | ||
``` | ||
|
||
If you see usr/local/bin in the output then you're good to go. | ||
|
||
3. Clone the repository (if you haven't already) by opening a Terminal window (or CMD with admin permissions) and then typing in this: | ||
1. Clone the repository: | ||
```bash | ||
# For stable version (recommended) | ||
git clone -b stable https://github.com/your/repo.git | ||
|
||
``` | ||
# For latest development version | ||
git clone https://github.com/stackblitz-labs/bolt.diy.git | ||
``` | ||
|
||
3. Rename .env.example to .env.local and add your LLM API keys. You will find this file on a Mac at "[your name]/bold.new-any-llm/.env.example". For Windows and Linux the path will be similar. | ||
2. Configure environment: | ||
- Rename `.env.example` to `.env.local` | ||
- Add your API keys: | ||
```env | ||
GROQ_API_KEY=XXX | ||
OPENAI_API_KEY=XXX | ||
ANTHROPIC_API_KEY=XXX | ||
... | ||
![image](https://github.com/user-attachments/assets/7e6a532c-2268-401f-8310-e8d20c731328) | ||
# Optional configurations | ||
VITE_LOG_LEVEL=debug | ||
OLLAMA_API_BASE_URL=http://localhost:11434 | ||
DEFAULT_NUM_CTX=8192 | ||
... | ||
``` | ||
If you can't see the file indicated above, its likely you can't view hidden files. On Mac, open a Terminal window and enter this command below. On Windows, you will see the hidden files option in File Explorer Settings. A quick Google search will help you if you are stuck here. | ||
|
||
``` | ||
defaults write com.apple.finder AppleShowAllFiles YES | ||
``` | ||
|
||
**NOTE**: you only have to set the ones you want to use and Ollama doesn't need an API key because it runs locally on your computer: | ||
|
||
Get your GROQ API Key here: https://console.groq.com/keys | ||
|
||
Get your Open AI API Key by following these instructions: https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key | ||
|
||
Get your Anthropic API Key in your account settings: https://console.anthropic.com/settings/keys | ||
|
||
``` | ||
GROQ_API_KEY=XXX | ||
OPENAI_API_KEY=XXX | ||
ANTHROPIC_API_KEY=XXX | ||
``` | ||
|
||
Optionally, you can set the debug level: | ||
|
||
``` | ||
VITE_LOG_LEVEL=debug | ||
``` | ||
|
||
And if using Ollama set the DEFAULT_NUM_CTX, the example below uses 8K context and ollama running on localhost port 11434: | ||
|
||
``` | ||
OLLAMA_API_BASE_URL=http://localhost:11434 | ||
DEFAULT_NUM_CTX=8192 | ||
3. Install dependencies: | ||
```bash | ||
pnpm install | ||
``` | ||
|
||
**Important**: Never commit your `.env.local` file to version control. It's already included in .gitignore. | ||
|
||
## Run with Docker | ||
|
||
Prerequisites: | ||
|
||
Git and Node.js as mentioned above, as well as Docker: https://www.docker.com/ | ||
|
||
### 1a. Using Helper Scripts | ||
|
||
NPM scripts are provided for convenient building: | ||
|
||
4. Start development server: | ||
```bash | ||
# Development build | ||
npm run dockerbuild | ||
|
||
# Production build | ||
npm run dockerbuild:prod | ||
pnpm run dev | ||
``` | ||
|
||
### 1b. Direct Docker Build Commands (alternative to using NPM scripts) | ||
|
||
You can use Docker's target feature to specify the build environment instead of using NPM scripts if you wish: | ||
### Option 2: Docker Setup | ||
|
||
```bash | ||
# Development build | ||
npm run dockerbuild | ||
# OR | ||
docker build . --target bolt-ai-development | ||
|
||
# Production build | ||
npm run dockerbuild:prod | ||
# OR | ||
docker build . --target bolt-ai-production | ||
``` | ||
|
||
### 2. Docker Compose with Profiles to Run the Container | ||
|
||
Use Docker Compose profiles to manage different environments: | ||
|
||
```bash | ||
# Development environment | ||
docker-compose --profile development up | ||
|
||
# Production environment | ||
docker-compose --profile production up | ||
# Run with Docker Compose | ||
docker-compose --profile development up # For development | ||
docker-compose --profile production up # For production | ||
``` | ||
|
||
When you run the Docker Compose command with the development profile, any changes you | ||
make on your machine to the code will automatically be reflected in the site running | ||
on the container (i.e. hot reloading still applies!). | ||
## 🎯 Available Scripts | ||
|
||
## Run Without Docker | ||
|
||
1. Install dependencies using Terminal (or CMD in Windows with admin permissions): | ||
|
||
``` | ||
pnpm install | ||
``` | ||
|
||
If you get an error saying "command not found: pnpm" or similar, then that means pnpm isn't installed. You can install it via this: | ||
```bash | ||
# Development | ||
pnpm run dev # Start development server with hot reloading | ||
pnpm run build # Build the project for production | ||
pnpm run preview # Build and preview production locally | ||
|
||
``` | ||
sudo npm install -g pnpm | ||
``` | ||
# Testing & Quality | ||
pnpm test # Run tests once | ||
pnpm run test:watch # Run tests in watch mode | ||
pnpm run lint:fix # Fix linting and formatting issues | ||
|
||
2. Start the application with the command: | ||
# Docker | ||
pnpm run dockerbuild # Build development Docker image | ||
pnpm run dockerbuild:prod # Build production Docker image | ||
pnpm run dockerrun # Run Docker container with local environment | ||
|
||
```bash | ||
pnpm run dev | ||
# Type Checking | ||
pnpm run typecheck # Run TypeScript type checking | ||
``` | ||
## Available Scripts | ||
|
||
- `pnpm run dev`: Starts the development server. | ||
- `pnpm run build`: Builds the project. | ||
- `pnpm run start`: Runs the built application locally using Wrangler Pages. This script uses `bindings.sh` to set up necessary bindings so you don't have to duplicate environment variables. | ||
- `pnpm run preview`: Builds the project and then starts it locally, useful for testing the production build. Note, HTTP streaming currently doesn't work as expected with `wrangler pages dev`. | ||
- `pnpm test`: Runs the test suite using Vitest. | ||
- `pnpm run typecheck`: Runs TypeScript type checking. | ||
- `pnpm run typegen`: Generates TypeScript types using Wrangler. | ||
- `pnpm run deploy`: Builds the project and deploys it to Cloudflare Pages. | ||
- `pnpm run lint:fix`: Runs the linter and automatically fixes issues according to your ESLint configuration. | ||
|
||
## Development | ||
## 🤝 Community | ||
|
||
To start the development server: | ||
Join our community: https://thinktank.ottomator.ai | ||
|
||
```bash | ||
pnpm run dev | ||
``` | ||
Originally started by [Cole Medin](https://www.youtube.com/@ColeMedin), Bolt.diy has grown into a community-driven project. | ||
|
||
This will start the Remix Vite development server. You will need Google Chrome Canary to run this locally if you use Chrome! It's an easy install and a good browser for web development anyway. | ||
## ✅ Completed Features & Contributors | ||
|
||
## How do I contribute to Bolt.diy? | ||
|
||
[Please check out our dedicated page for contributing to Bolt.diy here!](CONTRIBUTING.md) | ||
|
||
## What are the future plans for Bolt.diy? | ||
- ✅ OpenRouter Integration (@coleam00) | ||
- ✅ Gemini Integration (@jonathands) | ||
- ✅ Autogenerate Ollama models from what is downloaded (@yunatamos) | ||
- ✅ Filter models by provider (@jasonm23) | ||
- ✅ Download project as ZIP (@fabwaseem) | ||
- ✅ Improvements to the main Bolt.new prompt in `app\lib\.server\llm\prompts.ts` (@kofi-bhr) | ||
- ✅ DeepSeek API Integration (@zenith110) | ||
- ✅ Mistral API Integration (@ArulGandhi) | ||
- ✅ "Open AI Like" API Integration (@ZerxZ) | ||
- ✅ Ability to sync files (one way sync) to local folder (@muzafferkadir) | ||
- ✅ Containerize the application with Docker for easy installation (@aaronbolton) | ||
- ✅ Publish projects directly to GitHub (@goncaloalves) | ||
- ✅ Ability to enter API keys in the UI (@ali00209) | ||
- ✅ xAI Grok Beta Integration (@milutinke) | ||
- ✅ LM Studio Integration (@karrot0) | ||
- ✅ HuggingFace Integration (@ahsan3219) | ||
- ✅ Bolt terminal to see the output of LLM run commands (@thecodacus) | ||
- ✅ Streaming of code output (@thecodacus) | ||
- ✅ Ability to revert code to earlier version (@wonderwhy-er) | ||
- ✅ Cohere Integration (@hasanraiyan) | ||
- ✅ Dynamic model max token length (@hasanraiyan) | ||
- ✅ Better prompt enhancing (@SujalXplores) | ||
- ✅ Prompt caching (@SujalXplores) | ||
- ✅ Load local projects into the app (@wonderwhy-er) | ||
- ✅ Together Integration (@mouimet-infinisoft) | ||
- ✅ Mobile friendly (@qwikode) | ||
- ✅ Better prompt enhancing (@SujalXplores) | ||
- ✅ Attach images to prompts (@atrokhym) | ||
- ✅ Detect package.json and commands to auto install and run preview for folder and git import (@wonderwhy-er) | ||
|
||
[Check out our Roadmap here!](https://roadmap.sh/r/ottodev-roadmap-2ovzo) | ||
## 🔄 Upcoming Features | ||
|
||
Lot more updates to this roadmap coming soon! | ||
- ⬜ **HIGH PRIORITY** - Prevent Bolt from rewriting files as often (file locking and diffs) | ||
- ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start) | ||
- ⬜ **HIGH PRIORITY** - Run agents in the backend as opposed to a single model call | ||
- ⬜ Deploy directly to Vercel/Netlify/other similar platforms | ||
- ⬜ Have LLM plan the project in a MD file for better results/transparency | ||
- ⬜ VSCode Integration with git-like confirmations | ||
- ⬜ Upload documents for knowledge - UI design templates, a code base to reference coding style, etc. | ||
- ⬜ Voice prompting | ||
- ⬜ Azure Open AI API Integration | ||
- ⬜ Perplexity Integration | ||
- ⬜ Vertex AI Integration | ||
|
||
## FAQ | ||
## 📖 Additional Resources | ||
- [Contributing Guide](CONTRIBUTING.md) | ||
- [Project Roadmap](https://roadmap.sh/r/ottodev-roadmap-2ovzo) | ||
- [FAQ](FAQ.md) | ||
|
||
[Please check out our dedicated page for FAQ's related to Bolt.diy here!](FAQ.md) | ||
> **Note**: Never commit your `.env.local` file to version control. It's already included in .gitignore. |