diff --git a/docs/assets/01-light.png b/docs/assets/01-light.png new file mode 100644 index 0000000..13c6514 Binary files /dev/null and b/docs/assets/01-light.png differ diff --git a/docs/hardware/esp32/assets/AsyncTCP by dvarrel.png b/docs/assets/AsyncTCP by dvarrel.png similarity index 100% rename from docs/hardware/esp32/assets/AsyncTCP by dvarrel.png rename to docs/assets/AsyncTCP by dvarrel.png diff --git a/docs/hardware/esp32/assets/ESPAsyncWebServer by lacamera.png b/docs/assets/ESPAsyncWebServer by lacamera.png similarity index 100% rename from docs/hardware/esp32/assets/ESPAsyncWebServer by lacamera.png rename to docs/assets/ESPAsyncWebServer by lacamera.png diff --git a/docs/hardware/esp32/assets/ESPAsyncWebServer-install-all.png b/docs/assets/ESPAsyncWebServer-install-all.png similarity index 100% rename from docs/hardware/esp32/assets/ESPAsyncWebServer-install-all.png rename to docs/assets/ESPAsyncWebServer-install-all.png diff --git a/docs/hardware/esp32/assets/M5-atom-library.png b/docs/assets/M5-atom-library.png similarity index 100% rename from docs/hardware/esp32/assets/M5-atom-library.png rename to docs/assets/M5-atom-library.png diff --git a/docs/hardware/esp32/assets/Select Board and Port.png b/docs/assets/Select Board and Port.png similarity index 100% rename from docs/hardware/esp32/assets/Select Board and Port.png rename to docs/assets/Select Board and Port.png diff --git a/docs/hardware/esp32/assets/Upload.png b/docs/assets/Upload.png similarity index 100% rename from docs/hardware/esp32/assets/Upload.png rename to docs/assets/Upload.png diff --git a/docs/hardware/esp32/assets/WebSockets by Markus Sattler.png b/docs/assets/WebSockets by Markus Sattler.png similarity index 100% rename from docs/hardware/esp32/assets/WebSockets by Markus Sattler.png rename to docs/assets/WebSockets by Markus Sattler.png diff --git a/docs/assets/app.png b/docs/assets/app.png new file mode 100644 index 0000000..abed8fc Binary files /dev/null and b/docs/assets/app.png differ diff --git a/docs/hardware/esp32/assets/boards-manager.png b/docs/assets/boards-manager.png similarity index 100% rename from docs/hardware/esp32/assets/boards-manager.png rename to docs/assets/boards-manager.png diff --git a/docs/hardware/esp32/assets/connect_usb.jpeg b/docs/assets/connect_usb.jpeg similarity index 100% rename from docs/hardware/esp32/assets/connect_usb.jpeg rename to docs/assets/connect_usb.jpeg diff --git a/docs/hardware/esp32/assets/copy-client.png b/docs/assets/copy-client.png similarity index 100% rename from docs/hardware/esp32/assets/copy-client.png rename to docs/assets/copy-client.png diff --git a/docs/hardware/esp32/assets/hardcode-wifi-pass-server.png b/docs/assets/hardcode-wifi-pass-server.png similarity index 100% rename from docs/hardware/esp32/assets/hardcode-wifi-pass-server.png rename to docs/assets/hardcode-wifi-pass-server.png diff --git a/docs/hardware/esp32/assets/m5-atom-install-all.png b/docs/assets/m5-atom-install-all.png similarity index 100% rename from docs/hardware/esp32/assets/m5-atom-install-all.png rename to docs/assets/m5-atom-install-all.png diff --git a/docs/hardware/esp32/assets/m5atomecho.png b/docs/assets/m5atomecho.png similarity index 100% rename from docs/hardware/esp32/assets/m5atomecho.png rename to docs/assets/m5atomecho.png diff --git a/docs/hardware/esp32/assets/paste-client.png b/docs/assets/paste-client.png similarity index 100% rename from docs/hardware/esp32/assets/paste-client.png rename to docs/assets/paste-client.png diff --git a/docs/hardware/esp32/assets/pasted-client.png b/docs/assets/pasted-client.png similarity index 100% rename from docs/hardware/esp32/assets/pasted-client.png rename to docs/assets/pasted-client.png diff --git a/docs/banner.png b/docs/banner.png new file mode 100644 index 0000000..7dd005f Binary files /dev/null and b/docs/banner.png differ diff --git a/docs/client/android-ios.mdx b/docs/client/android-ios.mdx new file mode 100644 index 0000000..fcda8fe --- /dev/null +++ b/docs/client/android-ios.mdx @@ -0,0 +1,61 @@ +--- +title: "Android & iOS" +description: "A react-native client for the 01" +--- + + + + View on GitHub + + + Get it on Google Play + + + Download on the App Store + + + +![A mini Android phone running the 01 App](/assets/app.png) + +The 01 App connects to the 01 server on your home machine, enabling remote access to your files, apps, and IoT devices. + +# Setup + + + + Install the 01 software on your computer. For detailed instructions, visit the [installation guide](/setup/installation). + + + Setup Livekit on your computer. For instructions, visit the [installation guide](/server/livekit). + + + Open a terminal and run the following command: + + ```bash + poetry run 01 --server livekit --expose --qr + ``` + + This will start the 01 server with LiveKit support, expose it to the internet, and generate a QR code. You may need to wait up to 30 seconds before the code is displayed. + + If the server fails, you may need to restart the server a few times before it works again. We're working on resolving this as soon as possible. + + + Open the 01 App on your mobile device and use it to scan the QR code displayed in your terminal. This will establish a connection between your mobile device and the 01 server running on your computer. + + + +# Settings + +The 01 App offers several customizable settings to enhance your experience. These can be changed by connecting to the server, then hitting the gear icon in the upper right, and adjusting the following settings: + +## Push-to-talk + +Hold the on-screen button to activate listening, or use voice activity detection for hands-free operation. + +## Wearable Mode + +Optimizes the interface for small screens, displaying a minimal full-screen button without the chat interface. + +## Always Listen for Context + +Continuously gathers environmental context, even when not actively prompted. Only available when Push-to-talk is enabled. diff --git a/docs/client/desktop.mdx b/docs/client/desktop.mdx new file mode 100644 index 0000000..4b6be39 --- /dev/null +++ b/docs/client/desktop.mdx @@ -0,0 +1,29 @@ +This client uses the [light](/server/light) server. + +The desktop client for 01 provides a simple way to interact with the 01 light server using your computer. There are two main ways to use the desktop client: + +## Simulating 01 Light Hardware + +To simulate the 01 light hardware device on your desktop, run: + +``` +poetry run 01 --client +``` + +This will start the client in simulation mode. You can hold the CTRL key to talk to the 01 light server, simulating the button press on the physical device. + +## Running Both Server and Client + +To run both the server and client simultaneously, use: + +``` +poetry run 01 +``` + +This command starts both the 01 light server and the desktop client, allowing you to interact with the system immediately. The client interface will guide you through the interaction process. + + + + + + diff --git a/docs/client/esp32.mdx b/docs/client/esp32.mdx new file mode 100644 index 0000000..ba69a48 --- /dev/null +++ b/docs/client/esp32.mdx @@ -0,0 +1,135 @@ +--- +title: "ESP32" +description: "How to setup the ESP32" +--- + +This client uses the [light](/server/light) server. + +### Video Guide + + + +--- + +To set up the ESP32 for use with 01, follow this guide to install the firmware: + + + + + Get the Arduino IDE + + + + + Get the firmware by copying the contents of [client.ino](https://github.com/OpenInterpreter/01/blob/main/software/source/clients/esp32/src/client/client.ino) from the 01 repository. + + + View the ESP32 firmware source code + + + Copy client.ino contents + + + + Open Arduino IDE and paste the client.ino contents. + + Paste client.ino contents + + Pasted client.ino contents + + + + Hardcode your WiFi SSID, WiFi password, and server URL into the top of the `client.ino` file. + + Hardcode WiFi SSID and password + + Hardcoding is recommended for a more streamlined setup and development environment. However, if you don't hardcode these values or if the ESP32 can't connect using the provided information, it will automatically default to a captive portal for configuration. + + + + Go to Tools -> Board -> Boards Manager, search "esp32", then install the boards by Arduino and Espressif. + + Install ESP32 boards + + + + Go to Tools -> Manage Libraries, then install the following: + + - M5Atom by M5Stack ([Reference](https://www.arduino.cc/reference/en/libraries/m5atom/)) + + Install M5Atom library + + Install all M5Atom dependencies + + - WebSockets by Markus Sattler ([Reference](https://www.arduino.cc/reference/en/libraries/websockets/)) + + Install WebSockets library + + - AsyncTCP by dvarrel ([Reference](https://github.com/dvarrel/AsyncTCP)) + + Install AsyncTCP library + + - ESPAsyncWebServer by lacamera ([Reference](https://github.com/lacamera/ESPAsyncWebServer)) + + Install ESPAsyncWebServer library + + Install all ESPAsyncWebServer dependencies + + + + To flash the .ino to the board, connect the board to the USB port. + + Connect USB + + + + Select the port from the dropdown on the IDE, then select the M5Atom board (or M5Stack-ATOM if you have that). + + Select Board and Port + + + + Click on upload to flash the board. + + Upload firmware + + + + Start the 01 server on your computer: + ``` + poetry run 01 --server light + ``` + This command starts the server and generates a URL. + + For remote connections, use: + ``` + poetry run 01 --server light --expose + ``` + This generates a public URL accessible from anywhere. + + + + Connect your 01 device to the server using one of these methods: + + a) Hardcode credentials: + - Modify the Wi-Fi and server credentials at the top of the `client.ino` file. + - Flash the modified file to the ESP32. + - This method is quick but less flexible for changing details later. + + b) Use the captive portal: + - Power on your 01 device. + - Connect to the '01-light' Wi-Fi network from your computer or smartphone. + - A captive portal page should open automatically. If not, open a web browser. + - Enter your Wi-Fi details and the server URL from step 1. + - Click 'Connect' to save settings and connect your device. + + After successful connection, your ESP32 will be ready to communicate with the server. + + diff --git a/docs/client/introduction.mdx b/docs/client/introduction.mdx new file mode 100644 index 0000000..0fb555d --- /dev/null +++ b/docs/client/introduction.mdx @@ -0,0 +1,33 @@ +--- +title: "Introduction" +description: "Talk to the 01 Server using a client" +--- + +The 01 client is the user interface that captures and transmits audio, plays back responses, and provides a seamless experience across various platforms. It's designed to interact with the 01 server, which processes input, executes commands, and generates responses using Open Interpreter. + + + + + + + \ No newline at end of file diff --git a/docs/hardware/mobile/community-apps.mdx b/docs/client/native-ios.mdx similarity index 88% rename from docs/hardware/mobile/community-apps.mdx rename to docs/client/native-ios.mdx index d4e3608..3e83bea 100644 --- a/docs/hardware/mobile/community-apps.mdx +++ b/docs/client/native-ios.mdx @@ -1,9 +1,10 @@ --- -title: "Community Apps" -description: "Apps built by the community" +title: "Native iOS App" --- -## Native iOS app by [eladekkal](https://github.com/eladdekel). +This client uses the [light](/server/light) server. + +**Thank you [eladekkal](https://github.com/eladdekel) for your native iOS contribution!** To run it on your device, you can either install the app directly through the current TestFlight [here](https://testflight.apple.com/join/v8SyuzMT), or build from the source code files in Xcode on your Mac. diff --git a/docs/getting-started/getting-started.mdx b/docs/getting-started/getting-started.mdx deleted file mode 100644 index d57083d..0000000 --- a/docs/getting-started/getting-started.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Getting Started" -description: "Preparing your machine" ---- - -## Prerequisites - -To run the 01 on your computer, you will need to install the following essential packages: - -- Git -- Python (version 3.11.x recommended) -- Poetry -- FFmpeg - -## Installation Guide - -### For All Platforms - -1. **Git**: Download and install Git from the [official website](https://git-scm.com/downloads). - -2. **Python**: - - Download Python 3.11.x from the [official Python website](https://www.python.org/downloads/). - - During installation, make sure to check "Add Python to PATH". - -3. **Poetry**: - - Follow the [official Poetry installation guide](https://python-poetry.org/docs/#installing-with-the-official-installer). - - If you encounter SSL certificate issues on Windows, see the Windows-specific instructions below. - -4. **FFmpeg**: Installation instructions vary by platform (see below). - -### Platform-Specific Instructions - -#### MacOS - -We recommend using Homebrew to install the required dependencies: - -```bash -brew install portaudio ffmpeg cmake -``` - -#### Ubuntu - -**Note**: Wayland is not supported. These instructions are for Ubuntu 20.04 and below. - -Install the required packages: - -```bash -sudo apt-get update -sudo apt-get install portaudio19-dev ffmpeg cmake -``` - -#### Windows - -1. **Git**: Download and install [Git for Windows](https://git-scm.com/download/win). - -2. **Python**: - - Download Python 3.11.x from the [official Python website](https://www.python.org/downloads/windows/). - - During installation, ensure you check "Add Python to PATH". - -3. **Microsoft C++ Build Tools**: - - Download from [Microsoft's website](https://visualstudio.microsoft.com/visual-cpp-build-tools/). - - Run the installer and select "Desktop development with C++" from the Workloads tab. - - This step is crucial for Poetry to work correctly. - -4. **Poetry**: - - If the standard installation method fails due to SSL issues, try this workaround: - 1. Download the installation script from [https://install.python-poetry.org/](https://install.python-poetry.org/) and save it as `install-poetry.py`. - 2. Open the file and replace the `get(self, url):` method with: - ```python - def get(self, url): - import ssl - import certifi - request = Request(url, headers={"User-Agent": "Python Poetry"}) - context = ssl.create_default_context(cafile=certifi.where()) - context.check_hostname = False - context.verify_mode = ssl.CERT_NONE - with closing(urlopen(request, context=context)) as r: - return r.read() - ``` - 3. Run the modified script to install Poetry. - - Add Poetry to your PATH: - 1. Press Win + R, type "sysdm.cpl", and press Enter. - 2. Go to the "Advanced" tab and click "Environment Variables". - 3. Under "User variables", find "Path" and click "Edit". - 4. Click "New" and add: `C:\Users\\AppData\Roaming\Python\Scripts` - 5. Click "OK" to close all windows. - -5. **FFmpeg**: - - Download the latest FFmpeg build from the [BtbN GitHub releases page](https://github.com/BtbN/FFmpeg-Builds/releases). - - Choose the `ffmpeg-master-latest-win64-gpl.zip` (non-shared suffix) file. - - Extract the compressed zip file. - - Add the FFmpeg `bin` folder to your PATH: - 1. Press Win + R, type "sysdm.cpl", and press Enter. - 2. Go to the "Advanced" tab and click "Environment Variables". - 3. Under "System variables", find "Path" and click "Edit". - 4. Click "New" and add the full path to the FFmpeg `bin` folder (e.g., `C:\path\to\ffmpeg\bin`). - 5. Click "OK" to close all windows. - -## What is Poetry? - -Poetry is a dependency management and packaging tool for Python. It simplifies the process of managing project dependencies, ensuring consistent environments across different setups. We use Poetry to guarantee that everyone running 01 has the same environment and dependencies. - -## Troubleshooting - -### Windows-Specific Issues - -1. **Poetry Install Error**: If you encounter an error stating "Microsoft Visual C++ 14.0 or greater is required" when running `poetry install`, make sure you have properly installed the Microsoft C++ Build Tools as described in step 3 of the Windows installation guide. - -2. **FFmpeg Not Found**: If you receive an error saying FFmpeg is not found after installation, ensure that you've correctly added the FFmpeg `bin` folder to your system PATH as described in step 5 of the Windows installation guide. - -3. **Server Connection Issues**: If the server connects but you encounter errors when sending messages, double-check that all dependencies are correctly installed and that FFmpeg is properly set up in your PATH. - -## Next Steps - -Once you have successfully installed all the prerequisites, you're ready to clone the repository and set up the project. \ No newline at end of file diff --git a/docs/getting-started/introduction.mdx b/docs/getting-started/introduction.mdx deleted file mode 100644 index 480ce77..0000000 --- a/docs/getting-started/introduction.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Introduction -description: "The open-source language model computer" ---- - -thumbnail - -The **01** is an open-source platform for conversational devices, inspired by the _Star Trek_ computer. - -With [Open Interpreter](https://github.com/OpenInterpreter/open-interpreter) at its core, the **01** is more natural, flexible, and capable than its predecessors. Assistants built on **01** can: - -- Execute code -- Browse the web -- Read and create files -- Control third-party software -- ... - -

- -We intend to become the GNU/Linux of this space by staying open, modular, and free. - -_Disclaimer:_ The current version of the 01 is a developer preview. diff --git a/docs/hardware/01-light/chip.mdx b/docs/hardware/01-light/chip.mdx index 5e879e1..ffb445e 100644 --- a/docs/hardware/01-light/chip.mdx +++ b/docs/hardware/01-light/chip.mdx @@ -1,5 +1,11 @@ - +--- +title: "Chip" +--- For the 01 Light project, we've chosen the M5Atom, which features an ESP32 Pico chip. This compact and powerful microcontroller is ideal for our needs, offering built-in Wi-Fi and Bluetooth capabilities, a microphone, speaker, and button. -To set up the M5Atom for use with 01 Light, please follow the detailed instructions in our [ESP32 Setup Guide](../esp32). This guide will walk you through the process of installing the necessary firmware and configuring your device. +To set up the M5Atom for use with 01 Light, please follow the instructions in our [ESP32 Setup Guide](client/esp32). + + + Learn how to set up your M5Atom for the 01 Light project + diff --git a/docs/hardware/01-light/connect.mdx b/docs/hardware/01-light/connect.mdx index 58f70e5..dee0eca 100644 --- a/docs/hardware/01-light/connect.mdx +++ b/docs/hardware/01-light/connect.mdx @@ -1,14 +1,34 @@ --- title: "Connect" -description: "Connect your 01 device" +description: "Connect your 01 device to your 01 server" --- -### Captive portal +### Connecting your 01 device to the server -To connect your 01, you will use the captive portal. +1. Start the 01 server on your computer: + ``` + poetry run 01 --server light + ``` + This command starts the server and generates a URL. -1. Turn on your computer or laptop and connect to the '01 light' Wi-Fi network. -2. Enter your Wi-Fi/hotspot name and password in the captive portal page. -3. Enter the server URL generated on their computer and hit 'Connect'. + For remote connections, use: + ``` + poetry run 01 --server light --expose + ``` + This generates a public URL accessible from anywhere. -Now you're connected and ready to go! +2. Connect your 01 device to the server using one of these methods: + + a) Hardcode credentials: + - Modify the Wi-Fi and server credentials at the top of the `client.ino` file. + - Flash the modified file to the ESP32. + - This method is quick but less flexible for changing details later. + + b) Use the captive portal: + - Power on your 01 device. + - Connect to the '01-light' Wi-Fi network from your computer or smartphone. + - A captive portal page should open automatically. If not, open a web browser. + - Enter your Wi-Fi details and the server URL from step 1. + - Click 'Connect' to save settings and connect your device. + +After successful connection, your 01 device will be ready to communicate with the server. diff --git a/docs/hardware/01-light/introduction.mdx b/docs/hardware/01-light/introduction.mdx index 3ef267f..8a1cb29 100644 --- a/docs/hardware/01-light/introduction.mdx +++ b/docs/hardware/01-light/introduction.mdx @@ -1,8 +1,42 @@ --- title: "Introduction" -description: "The 01 light" +description: "Talk to your computer from anywhere in the world" --- -The 01 light is an open-source voice interface. +![01 Light](/assets/01-light.png) -The first body was designed to be push-to-talk and handheld, but the core chip can be built into standalone bodies with hardcoded wifi credentials. +The 01 light is a handheld, push-to-talk voice interface. It's powered by an ESP32 chip that sends the user's voice over Wifi to the 01 Server, then plays back the audio it receives. + +# Setup guide + + + + + Get the list of components needed to build your 01 Light. Click here to view the required materials and purchase options. + + + + + + Download the 3D model files and follow instructions to print the custom case for your 01 Light. + + + + + + Step-by-step instructions on how to put together your 01 Light components inside the 3D printed case. + + + + + + Learn how to flash the ESP32 with the 01 Light firmware to enable its core functionality. + + + + + + Configure your 01 Light to connect to the 01 Server and start using your new voice interface. + + + diff --git a/docs/hardware/custom.mdx b/docs/hardware/custom.mdx new file mode 100644 index 0000000..e3aab46 --- /dev/null +++ b/docs/hardware/custom.mdx @@ -0,0 +1,52 @@ +--- +title: "Custom Hardware" +description: "Control 01 from your own device" +--- + +You can create custom hardware that integrates with the O1 server software running on your computer. + +To use 01 with your custom hardware, run the livekit server and connect to the "Livekit is running at..." URL that is displayed: + +```bash +poetry run 01 --server livekit +``` + +Or, run the light server and connect to the URL that is displayed: + +```bash +poetry run 01 --server light +``` + +You may need to set additional parameters via [flags](/software/flags) depending on your setup. + +--- + +# Usage + +## Light Server + +When using the light server, to transmit audio commands to 01, send LMC audio chunks to the websocket defined by your server. + +### LMC Messages + +To support the incoming `L`anguage `M`odel `C`omputer architecture, we extend OpenAI's messages format to include additional information, and a new role called `computer`: + + + Read about LMC messages protocol here. + + +## Livekit Server + +When using the Livekit server, any of Livekit's SDKs will connect. + + + Find documentation and integration guides for all Livekit SDKs. + \ No newline at end of file diff --git a/docs/hardware/custom_hardware.mdx b/docs/hardware/custom_hardware.mdx deleted file mode 100644 index 50cddd8..0000000 --- a/docs/hardware/custom_hardware.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Custom Hardware" -description: "Control 01 from your own device" ---- - -You can create custom hardware that integrates with the O1 server software running on your computer. - -To use 01 with your custom hardware, run the server: - -```bash -poetry run 01 --server -``` - -You may need to set additional parameters via [flags](/software/flags) depending on your setup. - -To transmit audio commands to 01, send LMC audio chunks to the websocket defined by your server. - -## LMC Messages - -To support the incoming `L`anguage `M`odel `C`omputer architecture, we extend OpenAI's messages format to include additional information, and a new role called `computer`: - - - Read about LMC messages protocol here. - diff --git a/docs/hardware/desktop.mdx b/docs/hardware/desktop.mdx index 782e006..278fae7 100644 --- a/docs/hardware/desktop.mdx +++ b/docs/hardware/desktop.mdx @@ -1,12 +1,26 @@ --- title: "Desktop" -description: "Control 01 from your computer" +description: "Control the 01 from your computer" --- - Make sure that you have navigated to the `software` directory. + Make sure that you have navigated to the `/software` directory. -To run 01 with your computer's microphone and speaker, run: +To run 01 with your computer's microphone and speaker, you need to start a server and a client. + +We abstract this away with a simple command: ```bash poetry run 01 ``` + +*Tip:* While in the `/software` directory, you can run the following command to install the `01` command system-wide: + +```bash +pip install . +``` + +Then, simply run `01` in your terminal to start the server + client and begin speaking to your assistant. + +```bash +01 +``` \ No newline at end of file diff --git a/docs/hardware/esp32/esp32-setup.mdx b/docs/hardware/esp32/esp32-setup.mdx deleted file mode 100644 index 2624218..0000000 --- a/docs/hardware/esp32/esp32-setup.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "ESP32" -description: "How to setup the ESP32" ---- - -To set up the ESP32 for use with 01, follow this guide to install the firmware: - -1. Download [Arduino IDE](https://www.arduino.cc/en/software). - -2. Get the firmware by copying the contents of [client.ino](https://github.com/OpenInterpreter/01/blob/main/software/source/clients/esp32/src/client/client.ino) from the 01 repository. - -
- Copy client.ino contents -
- -3. Open Arduino IDE and paste the client.ino contents. - -
- Paste client.ino contents - - Pasted client.ino contents -
- -4. Hardcode your WiFi SSID, WiFi password, and server URL into the code. - -
- Hardcode WiFi SSID and password -
- -
-
- Hardcoding is recommended for a more streamlined setup and development environment. However, if you don't hardcode these values or if the ESP32 can't connect using the provided information, it will automatically default to a captive portal for configuration. -
-
- -5. Go to Tools -> Board -> Boards Manager, search "esp32", then install the boards by Arduino and Espressif. - -
- Install ESP32 boards -
- -5. Go to Tools -> Manage Libraries, then install the following: - -- M5Atom by M5Stack ([Reference](https://www.arduino.cc/reference/en/libraries/m5atom/)) - -
- Install M5Atom library - - Install all M5Atom dependencies -
- -- WebSockets by Markus Sattler ([Reference](https://www.arduino.cc/reference/en/libraries/websockets/)) - -
- Install WebSockets library -
- -- AsyncTCP by dvarrel ([Reference](https://github.com/dvarrel/AsyncTCP)) - -
- Install AsyncTCP library -
- -- ESPAsyncWebServer by lacamera ([Reference](https://github.com/lacamera/ESPAsyncWebServer)) - -
- Install ESPAsyncWebServer library - - Install all ESPAsyncWebServer dependencies -
- -6. To flash the .ino to the board, connect the board to the USB port. - -
- Connect USB -
- -7. Select the port from the dropdown on the IDE, then select the M5Atom board (or M5Stack-ATOM if you have that). - -
- Select Board and Port -
- -8. Click on upload to flash the board. - -
- Upload firmware -
- - - ---- - -Watch this video from Thomas for a step-by-step guide on flashing the ESP32 and connecting the 01. - -[![ESP32 Flashing Tutorial](https://img.youtube.com/vi/Y76zed8nEE8/0.jpg)](https://www.youtube.com/watch?v=Y76zed8nEE8 "ESP32 Flashing Tutorial") diff --git a/docs/hardware/esp32/esp32.mdx b/docs/hardware/esp32/esp32.mdx deleted file mode 100644 index 6a3c091..0000000 --- a/docs/hardware/esp32/esp32.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "ESP32" -description: "How to setup the ESP32" ---- - -To set up the ESP32 for use with 01, follow this guide to install the firmware: - -1. Download [Arduino IDE](https://www.arduino.cc/en/software). -2. Get the firmware by copying the contents of [client.ino](https://github.com/OpenInterpreter/01/blob/main/software/source/clients/esp32/src/client/client.ino) from the 01 repository. -3. Open Arduino IDE and paste the client.ino contents. -4. Go to Tools -> Board -> Boards Manager, search "esp32", then install the boards by Arduino and Espressif. -5. Go to Tools -> Manage Libraries, then install the following: - -- M5Atom by M5Stack [Reference](https://www.arduino.cc/reference/en/libraries/m5atom/) -- WebSockets by Markus Sattler [Reference](https://www.arduino.cc/reference/en/libraries/websockets/) -- AsyncTCP by dvarrel [Reference](https://github.com/dvarrel/AsyncTCP) -- ESPAsyncWebServer by lacamera [Reference](https://github.com/lacamera/ESPAsyncWebServer) - -6. To flash the .ino to the board, connect the board to the USB port, select the port from the dropdown on the IDE, then select the M5Atom board (or M5Stack-ATOM if you have that). Click on upload to flash the board. - -Watch this video from Thomas for a step-by-step guide on flashing the ESP32 and connecting the 01. - - \ No newline at end of file diff --git a/docs/hardware/grimes-build.mdx b/docs/hardware/grimes-build.mdx new file mode 100644 index 0000000..f3dc6ba --- /dev/null +++ b/docs/hardware/grimes-build.mdx @@ -0,0 +1,34 @@ +--- +title: "Grimes Build" +description: "A simple DIY setup used by Grimes and Bella Poarch at Coachella" +--- + +# Grimes' Coachella 01 Build + +This guide describes the simple DIY setup used by Grimes and Bella Poarch to interact with the 01 AI assistant at Coachella. The setup consists of two main components taped together: + + + + Purchase on Amazon + + + Purchase on Amazon + + + +## Assembly + +1. Purchase the macro keypad and microphone using the links above. +2. Simply tape the microphone to the macro keypad. + +## Setup + +1. Install the [01 Desktop Client](/client/desktop) on your computer. +2. Remap the buttons on the macro keypad to trigger the hotkey that activates the 01 AI assistant. + +## Usage + +1. Start the 01 Desktop Client on your computer. +2. Press the remapped button on the macro keypad to activate the 01 AI assistant. +3. Speak into the attached microphone to interact with the AI. + diff --git a/docs/hardware/introduction.mdx b/docs/hardware/introduction.mdx new file mode 100644 index 0000000..0e0c1c0 --- /dev/null +++ b/docs/hardware/introduction.mdx @@ -0,0 +1,41 @@ +--- +title: "Hardware Introduction" +description: "Explore various hardware configurations for the 01 platform" +--- + +The 01 platform offers flexibility in hardware configurations, allowing you to create a device that suits your needs and preferences. From desktop setups to portable builds, there are multiple options to bring the 01 experience to life. + + + + + + + + + +Choose the hardware configuration that best fits your needs and start building your own 01 device today! diff --git a/docs/hardware/mini-phone.mdx b/docs/hardware/mini-phone.mdx new file mode 100644 index 0000000..ec40c95 --- /dev/null +++ b/docs/hardware/mini-phone.mdx @@ -0,0 +1,18 @@ +--- +title: "Mini Phone" +description: "A compact, dedicated device for 01" +--- + +![Mini Phone for 01](/assets/app.png) + +To create your own mini-phone for 01: + +1. Install the 01 App on a small smartphone. For installation instructions, visit the [Android & iOS client page](/client/android-ios). + +2. Purchase a mini smartphone to use as your dedicated 01 device: + + + Buy on Amazon + + +Once you have the app installed on your mini smartphone, you'll have a compact, dedicated device for interacting with 01. \ No newline at end of file diff --git a/docs/hardware/mobile/development.mdx b/docs/hardware/mobile/development.mdx deleted file mode 100644 index 4d4ca25..0000000 --- a/docs/hardware/mobile/development.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Development" -description: "How to get your 01 mobile app" ---- - -## [React Native app](https://github.com/OpenInterpreter/01/tree/main/software/source/clients/mobile) - -Work in progress, we will continue to improve this application. - -If you want to run it on your device, you will need to install [Expo Go](https://expo.dev/go) on your mobile device. - -### Setup Instructions - -- [Install 01 software](/software/installation) on your machine - -- Run the Expo server: - -```shell -cd software/source/clients/mobile/react-native -npm install # install dependencies -npx expo start # start local expo development server -``` - -This will produce a QR code that you can scan with Expo Go on your mobile device. - -Open **Expo Go** on your mobile device and select _Scan QR code_ to scan the QR code produced by the `npx expo start` command. - -- Run 01: - -```shell -cd software # cd into `software` -poetry run 01 --mobile # exposes QR code for 01 Light server -``` - -### Using the App - -In the 01 mobile app, select _Scan Code_ to scan the QR code produced by the `poetry run 01 --mobile` command. - -Press and hold the button to speak, release to make the request. To rescan the QR code, swipe left on the screen to go back. diff --git a/docs/hardware/mobile/download.mdx b/docs/hardware/mobile/download.mdx deleted file mode 100644 index d65f3d6..0000000 --- a/docs/hardware/mobile/download.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Download" -description: "How to get your 01 mobile app" ---- - -Using your phone is a great way to control 01. There are multiple options available. - - - - Coming soon - - - Coming soon - - diff --git a/docs/legal/fulfillment-policy.mdx b/docs/legal/fulfillment-policy.mdx deleted file mode 100644 index 6c6367d..0000000 --- a/docs/legal/fulfillment-policy.mdx +++ /dev/null @@ -1,67 +0,0 @@ -# Open Interpreter Fulfillment Policy for the 01 Light - -This Policy outlines how **OPEN INTERPRETER, INC. DBA Open Interpreter** ("Company," "we," or "us") fulfills orders, handles shipping, and processes returns for the **01 Light** product. - -## 1. Product Description - -The **01 Light** is a physical product sold by Open Interpreter, Inc. - -## 2. Delivery Policy - -### 2.1. Shipping Methods - -We ship the **01 Light** via standard shipping through our preferred carriers. - -### 2.2. Shipping Timeframes - -We strive to process and ship orders promptly. Estimated delivery timeframes will be provided in the near future based on your shipping address and chosen shipping method. - -### 2.3. Shipping Fees - -Shipping fees, if applicable, will be calculated and displayed during checkout based on your shipping address and chosen shipping method. - -## 3. Refund Policy - -### 3.1. Defective Product - -If you receive a defective **01 Light**, please contact our customer support team within 14 days of delivery. We will arrange for a replacement or issue a full refund, including shipping costs. - -### 3.2. Incorrect Shipment - -If you receive an incorrect product, please contact our customer support team within 14 days of delivery. We will arrange for the correct product to be shipped to you and provide a prepaid shipping label for the return of the incorrect item. - -## 4. Return Policy - -### 4.1. Eligibility - -The **01 Light** may be returned within 30 days of delivery for a refund, provided that the product is unused, in its original packaging, and in resalable condition. - -### 4.2. Return Shipping - -The customer is responsible for return shipping costs, unless the return is due to our error (e.g., defective product or incorrect shipment). - -### 4.3. Refund Processing - -Upon receipt and inspection of the returned product, we will issue a refund for the purchase price, less any applicable restocking fees, to the original payment method. - -**Return Address:** -Open Interpreter Inc. -505 Broadway E -PMB 323 -Seattle, WA 98102 - -## 5. Cancellation Policy - -### 5.1. Order Cancellation - -You may cancel your order for the **01 Light** at no cost any time before the order has been processed and shipped. Please contact our customer support team to request a cancellation. - -### 5.2. Processed Orders - -Once an order has been processed and shipped, it can no longer be cancelled. You may request a return in accordance with our Return Policy. - -## 6. Customer Support - -For inquiries, requests, or concerns regarding your order, refund, return, or any other aspect of this Policy, please contact our customer support team via call or text to **(206) 701-9374**‬ or via email at **help@openinterpreter.com**. We will make every effort to address your concerns promptly and provide a satisfactory resolution in accordance with this Policy and applicable laws. - -This Policy is governed by and construed in accordance with the laws of the State of Washington, without giving effect to any principles of conflicts of law. diff --git a/docs/hardware/mobile/privacy.mdx b/docs/legal/privacy-policy.mdx similarity index 87% rename from docs/hardware/mobile/privacy.mdx rename to docs/legal/privacy-policy.mdx index b04b0f0..310433a 100644 --- a/docs/hardware/mobile/privacy.mdx +++ b/docs/legal/privacy-policy.mdx @@ -1,7 +1,28 @@ --- title: "Privacy Policy" +description: "Understand how we collect, use, and protect your data." --- + + + Understand how we collect, use, and protect your data. + + + + Understand your rights and responsibilities when using the 01 App. + + + +# Privacy Policy + Last updated: August 8th, 2024 ## 1. Introduction @@ -82,4 +103,5 @@ Our app does not use cookies or web tracking technologies. ## 14. Consent -By using the 01 App, you consent to this Privacy Policy. \ No newline at end of file +By using the 01 App, you consent to this Privacy Policy. + diff --git a/docs/legal/privacy.mdx b/docs/legal/privacy.mdx deleted file mode 100644 index b04b0f0..0000000 --- a/docs/legal/privacy.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: "Privacy Policy" ---- - -Last updated: August 8th, 2024 - -## 1. Introduction - -Welcome to the 01 App. We are committed to protecting your privacy and providing a safe, AI-powered chat experience. This Privacy Policy explains how we collect, use, and protect your information when you use our app. - -## 2. Information We Collect - -### 2.1 When Using Our Cloud Service - -If you choose to use our cloud service, we collect and store: - -- Your email address -- Transcriptions of your interactions with our AI assistant -- Any images you send to or receive from the AI assistant - -### 2.2 When Using Self-Hosted Server - -If you connect to your own self-hosted server, we do not collect or store any of your data, including your email address. - -## 3. How We Use Your Information - -We use the collected information solely for the purpose of providing and improving our AI chat service. This includes: - -- Facilitating communication between you and our AI assistant -- Improving the accuracy and relevance of AI responses -- Analyzing usage patterns to enhance user experience - -## 4. Data Storage and Security - -We take appropriate measures to protect your data from unauthorized access, alteration, or destruction. All data is stored securely and accessed only by authorized personnel. - -## 5. Data Sharing and Third-Party Services - -We do not sell, trade, or otherwise transfer your personally identifiable information to outside parties. This does not include trusted third parties who assist us in operating our app, conducting our business, or servicing you, as long as those parties agree to keep this information confidential. - -We may use third-party services for analytics and app functionality. These services may collect anonymous usage data to help us improve the app. - -## 6. Data Retention and Deletion - -We retain your data for as long as your account is active or as needed to provide you services. If you wish to cancel your account or request that we no longer use your information, please contact us using the information in Section 11. - -## 7. Your Rights - -You have the right to: - -- Access the personal information we hold about you -- Request correction of any inaccurate information -- Request deletion of your data from our systems - -To exercise these rights, please contact us using the information provided in Section 11. - -## 8. Children's Privacy - -Our app is not intended for children under the age of 13. We do not knowingly collect personal information from children under 13. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us. - -## 9. International Data Transfer - -Your information, including personal data, may be transferred to — and maintained on — computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ from those in your jurisdiction. - -## 10. Changes to This Privacy Policy - -We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last updated" date. - -## 11. Contact Us - -If you have any questions about this Privacy Policy, please contact us at: - -Email: help@openinterpreter.com - -## 12. California Privacy Rights - -If you are a California resident, you have the right to request information regarding the disclosure of your personal information to third parties for direct marketing purposes, and to opt-out of such disclosures. As stated in this Privacy Policy, we do not share your personal information with third parties for direct marketing purposes. - -## 13. Cookies and Tracking - -Our app does not use cookies or web tracking technologies. - -## 14. Consent - -By using the 01 App, you consent to this Privacy Policy. \ No newline at end of file diff --git a/docs/legal/terms-of-service.mdx b/docs/legal/terms-of-service.mdx new file mode 100644 index 0000000..f7a7db3 --- /dev/null +++ b/docs/legal/terms-of-service.mdx @@ -0,0 +1,73 @@ +--- +title: "Terms of Service" +description: "Understand your rights and responsibilities when using the 01 App." +--- + + + + Understand how we collect, use, and protect your data. + + + + Understand your rights and responsibilities when using the 01 App. + + + + +# Terms of Service + +Last Updated: September 11, 2024 + +## 1. Acceptance of Terms + +By using the 01 App ("the App"), you agree to be bound by these Terms of Service. If you do not agree to these terms, do not use the App. + +## 2. Description of Service + +The 01 App is an experimental artificial intelligence chat application that has the capability to execute code on your computer. By using this App, you acknowledge and accept that: + +- The App can control your computer +- The App is capable of damaging your system +- The App may perform actions that could be considered malicious + +## 3. User Responsibilities + +Before using the App, you must: + +- Back up all your files +- Understand the safety implications of running AI-generated code on your computer +- Read and agree to these terms and conditions + +## 4. Risks and Disclaimer + +You understand and agree that: + +- The App is experimental and may cause damage to your system +- You use the App at your own risk +- We are not responsible for any damage, data loss, or other negative consequences resulting from your use of the App + +## 5. Indemnification + +You agree to indemnify and hold harmless the App developers, owners, and affiliates from any claims, damages, or expenses arising from your use of the App. + +## 6. Modifications to Service + +We reserve the right to modify or discontinue the App at any time without notice. + +## 7. Governing Law + +These terms shall be governed by and construed in accordance with the laws of Washington, USA. + +## 8. Contact Information + +For questions about these Terms, please contact us at: help@openinterpreter.com + +By using the 01 App, you acknowledge that you have read, understood, and agree to be bound by these Terms of Service. \ No newline at end of file diff --git a/docs/mint.json b/docs/mint.json index 69d5434..e76a4a5 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -33,10 +33,10 @@ }, "navigation": [ { - "group": "Getting Started", + "group": "Setup", "pages": [ - "getting-started/introduction", - "getting-started/getting-started" + "setup/introduction", + "setup/installation" ] }, { @@ -48,24 +48,27 @@ ] }, { - "group": "Software Setup", + "group": "Server", "pages": [ - "software/introduction", - "software/installation", - { - "group": "Server", - "pages": [ - "software/server/introduction", - "software/server/livekit-server", - "software/server/light-server" - ] - }, - "software/configure", - "software/flags" + "server/introduction", + "server/livekit", + "server/light", + "server/configure", + "server/flags" ] }, { - "group": "Hardware Setup", + "group": "Client", + "pages": [ + "client/introduction", + "client/android-ios", + "client/desktop", + "client/esp32", + "client/native-ios" + ] + }, + { + "group": "Hardware", "pages": [ { "group": "01 Light", @@ -78,17 +81,10 @@ "hardware/01-light/connect" ] }, - "hardware/esp32/esp32", - "hardware/custom_hardware", "hardware/desktop", - { - "group": "Mobile", - "pages": [ - "hardware/mobile/download", - "hardware/mobile/development", - "hardware/mobile/community-apps" - ] - } + "hardware/mini-phone", + "hardware/grimes-build", + "hardware/custom" ] }, { @@ -100,8 +96,8 @@ { "group": "Legal", "pages": [ - "legal/fulfillment-policy", - "legal/privacy" + "legal/privacy-policy", + "legal/terms-of-service" ] } ], diff --git a/docs/software/configure.mdx b/docs/server/configure.mdx similarity index 100% rename from docs/software/configure.mdx rename to docs/server/configure.mdx diff --git a/docs/software/flags.mdx b/docs/server/flags.mdx similarity index 100% rename from docs/software/flags.mdx rename to docs/server/flags.mdx diff --git a/docs/software/installation.mdx b/docs/server/installation.mdx similarity index 100% rename from docs/software/installation.mdx rename to docs/server/installation.mdx diff --git a/docs/server/introduction.mdx b/docs/server/introduction.mdx new file mode 100644 index 0000000..519be5f --- /dev/null +++ b/docs/server/introduction.mdx @@ -0,0 +1,25 @@ +--- +title: "Introduction" +--- + + + +The 01 project supports two different server types to accommodate various hardware capabilities and use cases. + +## Server Options + + + + Optimized for low-power, constrained environments like ESP32 devices. + + + Full-featured server for devices with higher processing power, such as phones, web browsers, and desktop computers. + + + +### Choosing the Right Server + +- **Light Server**: Ideal for embedded systems and IoT devices with limited resources. +- **Livekit Server**: Offers robust performance and a full range of features for more capable hardware. + +Select the server that best fits your device and project requirements. \ No newline at end of file diff --git a/docs/software/server/light-server.mdx b/docs/server/light.mdx similarity index 89% rename from docs/software/server/light-server.mdx rename to docs/server/light.mdx index df14ce2..6094fea 100644 --- a/docs/software/server/light-server.mdx +++ b/docs/server/light.mdx @@ -1,6 +1,6 @@ --- title: "Light Server" -description: "A lightweight voice server for your 0" +description: "A lightweight voice server for your 01" --- ## Overview diff --git a/docs/software/server/livekit-server.mdx b/docs/server/livekit.mdx similarity index 97% rename from docs/software/server/livekit-server.mdx rename to docs/server/livekit.mdx index ad14784..f39d55c 100644 --- a/docs/software/server/livekit-server.mdx +++ b/docs/server/livekit.mdx @@ -36,7 +36,7 @@ Before setting up the environment, you need to install Livekit. Follow the instr ``` - **Windows**: - [View the Windows install instructions here.](/software/server/windows-livekit) + [View the Windows install instructions here.](/server/windows-livekit) ### Environment Setup diff --git a/docs/server/windows-livekit.mdx b/docs/server/windows-livekit.mdx new file mode 100644 index 0000000..af02635 --- /dev/null +++ b/docs/server/windows-livekit.mdx @@ -0,0 +1,77 @@ +# LiveKit Installation Guide for Windows + +## Required Software + +- Git +- Python (version 3.11.9 recommended) +- Poetry (Python package manager) +- LiveKit server for Windows +- FFmpeg + +## Installation Steps + +### 1. Python Installation + +Install Python 3.11.9 (latest version < 3.12) using the binary installer. + +### 2. Poetry Installation + +Poetry installation on Windows can be challenging. If you encounter SSL certificate verification issues, try this workaround: + +1. Download the installation script from [https://install.python-poetry.org/](https://install.python-poetry.org/) and save it as `install-poetry.py`. +2. Modify the `get(self, url):` method in the script to disable certificate verification: + + ```python + def get(self, url): + import ssl + import certifi + request = Request(url) + context = ssl.create_default_context(cafile=certifi.where()) + context.check_hostname = False + context.verify_mode = ssl.CERT_NONE + with closing(urlopen(request, context=context)) as r: + return r.read() + ``` + +3. Run the modified script to install Poetry. +4. Add Poetry's bin directory to your PATH: + - Path: `C:\Users\[USERNAME]\AppData\Roaming\Python\Scripts` + - Follow the guide at: [https://www.java.com/en/download/help/path.html](https://www.java.com/en/download/help/path.html) + +### 3. LiveKit Server Installation + +1. Download the latest release of LiveKit server for Windows (e.g., `livekit_1.7.2_windows_amd64.zip`). +2. Extract the `livekit-server.exe` file to your `/software` directory. + +### 4. FFmpeg Installation + +1. Download the FFmpeg Windows build from: [https://github.com/BtbN/FFmpeg-Builds/releases](https://github.com/BtbN/FFmpeg-Builds/releases) + - Choose the `ffmpeg-master-latest-win64-gpl.zip` (non-shared suffix) version. +2. Extract the compressed zip and add the FFmpeg bin directory to your PATH. + +### 5. Final Setup + +1. Run `poetry install`. If you encounter an error about Microsoft Visual C++, install "Microsoft C++ Build Tools": + - Download from: [https://visualstudio.microsoft.com/visual-cpp-build-tools/](https://visualstudio.microsoft.com/visual-cpp-build-tools/) + - In the installation popup, select "Desktop Development with C++" with preselected components. + +2. Set up your Anthropic API key: + ``` + setx ANTHROPIC_API_KEY [your_api_key] + ``` + +3. Modify `main.py` to correctly locate and run the LiveKit server: + - Set the LiveKit path: + ```python + livekit_path = "path/to/your/01/software/livekit-server" + ``` + - Modify the server command for Windows: + ```python + f"{livekit_path} --dev --bind {server_host} --port {server_port}" + ``` + > Note: Remove the `> /dev/null 2>&1` section from the command as it's not compatible with Windows. + +## Troubleshooting + +- If you encounter "ffmpeg not found" errors or issues when sending messages, ensure FFmpeg is correctly installed and added to your PATH. +- For any SSL certificate issues during installation, refer to the Poetry installation workaround provided above. \ No newline at end of file diff --git a/docs/setup/installation.mdx b/docs/setup/installation.mdx new file mode 100644 index 0000000..b473059 --- /dev/null +++ b/docs/setup/installation.mdx @@ -0,0 +1,163 @@ +--- +title: "Installation" +--- + +## Prerequisites + +To run the 01 on your computer, you will need to install the following essential packages: + +- Git +- Python (version 3.11.x recommended) +- Poetry +- FFmpeg + + + + ### MacOS Installation + + 1. **Git**: If you don't already have it, download and install Git from its [official website](https://git-scm.com/downloads). + + 2. **Python**: + - Download **Python 3.11.x** from the [official Python website](https://www.python.org/downloads/). + - During installation, make sure to check "Add Python to PATH". + + 3. **Poetry**: + - Follow the [official Poetry installation guide](https://python-poetry.org/docs/#installing-with-the-official-installer). + + 4. **FFmpeg and other dependencies**: + We recommend using Homebrew to install the required dependencies: + + ```bash + brew install portaudio ffmpeg cmake + ``` + + + + ### Windows Installation + + 1. **Git**: Download and install [Git for Windows](https://git-scm.com/download/win). + + 2. **Python**: + - Download Python 3.11.x from the [official Python website](https://www.python.org/downloads/windows/). + - During installation, ensure you check "Add Python to PATH". + + 3. **Microsoft C++ Build Tools**: + - Download from [Microsoft's website](https://visualstudio.microsoft.com/visual-cpp-build-tools/). + - Run the installer and select "Desktop development with C++" from the Workloads tab. + - This step is crucial for Poetry to work correctly. + + 4. **Poetry**: + - If the standard installation method fails due to SSL issues, try this workaround: + 1. Download the installation script from [https://install.python-poetry.org/](https://install.python-poetry.org/) and save it as `install-poetry.py`. + 2. Open the file and replace the `get(self, url):` method with: + ```python + def get(self, url): + import ssl + import certifi + request = Request(url, headers={"User-Agent": "Python Poetry"}) + context = ssl.create_default_context(cafile=certifi.where()) + context.check_hostname = False + context.verify_mode = ssl.CERT_NONE + with closing(urlopen(request, context=context)) as r: + return r.read() + ``` + 3. Run the modified script to install Poetry. + - Add Poetry to your PATH: + 1. Press Win + R, type "sysdm.cpl", and press Enter. + 2. Go to the "Advanced" tab and click "Environment Variables". + 3. Under "User variables", find "Path" and click "Edit". + 4. Click "New" and add: `C:\Users\\AppData\Roaming\Python\Scripts` + 5. Click "OK" to close all windows. + + 5. **FFmpeg**: + - Download the latest FFmpeg build from the [BtbN GitHub releases page](https://github.com/BtbN/FFmpeg-Builds/releases). + - Choose the `ffmpeg-master-latest-win64-gpl.zip` (non-shared suffix) file. + - Extract the compressed zip file. + - Add the FFmpeg `bin` folder to your PATH: + 1. Press Win + R, type "sysdm.cpl", and press Enter. + 2. Go to the "Advanced" tab and click "Environment Variables". + 3. Under "System variables", find "Path" and click "Edit". + 4. Click "New" and add the full path to the FFmpeg `bin` folder (e.g., `C:\path\to\ffmpeg\bin`). + 5. Click "OK" to close all windows. + + ## Troubleshooting + + 1. **Poetry Install Error**: If you encounter an error stating "Microsoft Visual C++ 14.0 or greater is required" when running `poetry install`, make sure you have properly installed the Microsoft C++ Build Tools as described in step 3 of the Windows installation guide. + + 2. **FFmpeg Not Found**: If you receive an error saying FFmpeg is not found after installation, ensure that you've correctly added the FFmpeg `bin` folder to your system PATH as described in step 5 of the Windows installation guide. + + 3. **Server Connection Issues**: If the server connects but you encounter errors when sending messages, double-check that all dependencies are correctly installed and that FFmpeg is properly set up in your PATH. + + + + ### Linux Installation (Ubuntu) + + 1. **Git**: If you don't already have it, install Git using: + ```bash + sudo apt-get update + sudo apt-get install git + ``` + + 2. **Python**: + - Install Python 3.11.x using: + ```bash + sudo apt-get install python3.11 + ``` + + 3. **Poetry**: + - Follow the [official Poetry installation guide](https://python-poetry.org/docs/#installing-with-the-official-installer). + + 4. **FFmpeg and other dependencies**: + Install the required packages: + + ```bash + sudo apt-get update + sudo apt-get install portaudio19-dev ffmpeg cmake + ``` + + + + +## Install 01 + +Now, clone the repo and navigate into the 01 directory: + +```bash +git clone https://github.com/OpenInterpreter/01.git +cd 01 +``` + +Then, navigate to the project's software directory: + +```bash +cd software +``` + +**Your current working directory should now be `01/software`.** + +Finally, install the project's dependencies in a virtual environment managed by Poetry. + +```bash +poetry install +``` + +Now you should be ready to run the 01. + +--- + +# Software + + + + The brain of the 01 system that runs on your computer. It processes input, executes commands, generates responses, and manages core logic using Open Interpreter. + + + The user interface that captures and transmits audio, plays back responses, and provides a seamless experience across various platforms. + + + +# Hardware + + + Explore various hardware configurations, from desktop setups to ESP32-based portable builds and custom integrations. Find guides for assembling your own 01 device. + \ No newline at end of file diff --git a/docs/setup/introduction.mdx b/docs/setup/introduction.mdx new file mode 100644 index 0000000..ef77dac --- /dev/null +++ b/docs/setup/introduction.mdx @@ -0,0 +1,16 @@ +--- +title: Introduction +description: "The #1 open-source voice interface" +--- + + + +The **01** is an open-source platform for conversational devices, inspired by the *Rabbit R1* and *Star Trek* computer. + +By centering this project on [Open Interpreter](https://github.com/OpenInterpreter/open-interpreter), the 01 is more natural, flexible, and capable than its predecessors. Assistants built from this project can execute code, browse the web, read and create files, control third-party software, and beyond. + +

+ +_Disclaimer:_ The current version of the 01 is an experimental developer preview. \ No newline at end of file diff --git a/docs/software/introduction.mdx b/docs/software/introduction.mdx deleted file mode 100644 index ae72117..0000000 --- a/docs/software/introduction.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Overview" -description: "The software that powers 01" ---- - -## Components - -The 01 software consists of two main components: - -### Server - -The server runs on your computer and acts as the brain of the 01 system. It: - -- Passes input to the interpreter -- Executes commands on your computer -- Returns responses - -### Client - -The client is responsible for capturing audio for controlling computers running the 01 server. It: - -- Transmits audio to the server -- Plays back responses - -## Customization - -One of the key features of the 01 ecosystem is its modularity. You can: - -- Use different language models -- Customize the system's behavior through profiles -- Create and integrate custom hardware - -## Getting Started - -To begin using 01: - -1. [Install](/software/installation) the software -2. [Run](/software/server/introduction) the Server -3. [Connect](/hardware/01-light/connect) the Client - -For more advanced usage, check out our guides on [configuration](/software/configure). - -## Contributing - -As an open-source project, we welcome contributions from the community. Whether you're interested in improving the core software, developing new features, or creating custom hardware integrations, there are many ways to get involved. diff --git a/docs/software/server/introduction.mdx b/docs/software/server/introduction.mdx deleted file mode 100644 index d8a1df6..0000000 --- a/docs/software/server/introduction.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Choosing a server" -description: "The servers that powers 01" ---- - - - - Light Server - - - Livekit Server - - - -## Livekit vs. Light Server - -- **Livekit Server**: Designed for devices with higher processing power, such as phones, web browsers, and more capable hardware. It offers a full range of features and robust performance. - -- **Light Server**: We have another lightweight server called the Light server, specifically designed for ESP32 devices. It's optimized for low-power, constrained environments. diff --git a/docs/software/server/windows-livekit.mdx b/docs/software/server/windows-livekit.mdx deleted file mode 100644 index eadc0cb..0000000 --- a/docs/software/server/windows-livekit.mdx +++ /dev/null @@ -1,70 +0,0 @@ -LiveKit Installation and Usage Guide for Windows - -Prerequisites - -Required Software: -- IDE (e.g., VSCode, Cursor) -- Git -- Python (version 3.11.9 recommended) -- Poetry (Python package manager) -- LiveKit server for Windows -- FFmpeg - -Python Installation: -1. Install Python 3.11.9 (latest version [less than] 3.12) using the binary installer. - -Poetry Installation: -Poetry installation on Windows can be challenging. If you encounter SSL certificate verification issues, try the following workaround: - -1. Download the installation script from https://install.python-poetry.org/ and save it as install-poetry.py. -2. Modify the get(self, url): method in the script to disable certificate verification: - -def get(self, url): - import ssl - import certifi - request = Request(url) - context = ssl.create_default_context(cafile=certifi.where()) - context.check_hostname = False - context.verify_mode = ssl.CERT_NONE - with closing(urlopen(request, context=context)) as r: - return r.read() - -3. Run the modified script to install Poetry. -4. Add Poetry's bin directory to your PATH: - - Path: C:\Users\[USERNAME]\AppData\Roaming\Python\Scripts - - Follow the guide at: https://www.java.com/en/download/help/path.html - -LiveKit Server Installation: -1. Download the latest release of LiveKit server for Windows (e.g., livekit_1.7.2_windows_amd64.zip). -2. Extract the livekit-server.exe file to your /software directory. - -FFmpeg Installation: -1. Download the FFmpeg Windows build from: https://github.com/BtbN/FFmpeg-Builds/releases - - Choose the ffmpeg-master-latest-win64-gpl.zip (non-shared suffix) version. -2. Extract the compressed zip and add the FFmpeg bin directory to your PATH. - -Installation Steps: - -1. Run 'poetry install'. If you encounter an error about Microsoft Visual C++, install "Microsoft C++ Build Tools": - - Download from: https://visualstudio.microsoft.com/visual-cpp-build-tools/ - - In the installation popup, select "Desktop Development with C++" with preselected components. - -2. Set up your Anthropic API key: - setx ANTHROPIC_API_KEY [your_api_key] - -3. Modify main.py to correctly locate and run the LiveKit server: - - Set the LiveKit path: - livekit_path = "path/to/your/01/software/livekit-server" - - Modify the server command for Windows: - f"{livekit_path} --dev --bind {server_host} --port {server_port}" - Note: Remove the '> /dev/null 2>&1' section from the command as it's not compatible with Windows. - -Troubleshooting: - -- If you encounter "ffmpeg not found" errors or issues when sending messages, ensure FFmpeg is correctly installed and added to your PATH. -- For any SSL certificate issues during installation, refer to the Poetry installation workaround provided above. - -Additional Notes: - -- This guide assumes you're using Windows. Some commands or paths may need to be adjusted for your specific setup. -- Always ensure you're using the latest versions of software and check official documentation for any recent changes. \ No newline at end of file diff --git a/docs/style.css b/docs/style.css index 52a1d79..068c677 100644 --- a/docs/style.css +++ b/docs/style.css @@ -1,6 +1,6 @@ -.rounded-lg { +/* .rounded-lg { border-radius: 0; -} +} */ /*