Skip to content

Commit a0d1e70

Browse files
committed
01.1
1 parent 888743c commit a0d1e70

File tree

5 files changed

+176
-77
lines changed

5 files changed

+176
-77
lines changed

docs/getting-started/getting-started.mdx

Lines changed: 84 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,91 +3,113 @@ title: "Getting Started"
33
description: "Preparing your machine"
44
---
55

6-
## Overview
6+
## Prerequisites
77

8-
The 01 project is an open-source ecosystem for artificially intelligent devices. By combining code-interpreting language models ("interpreters") with speech recognition and voice synthesis, the 01's flagship operating system ("01") can power conversational, computer-operating AI devices similar to the Rabbit R1 or the Humane Pin.
8+
To run the 01 on your computer, you will need to install the following essential packages:
99

10-
Our goal is to become the "Linux" of this new space—open, modular, and free for personal or commercial use.
10+
- Git
11+
- Python (version 3.11.x recommended)
12+
- Poetry
13+
- FFmpeg
1114

12-
<Note>The current version of 01 is a developer preview.</Note>
15+
## Installation Guide
1316

14-
## Components
17+
### For All Platforms
1518

16-
The 01 consists of two main components:
19+
1. **Git**: Download and install Git from the [official website](https://git-scm.com/downloads).
1720

18-
### Server
21+
2. **Python**:
22+
- Download Python 3.11.x from the [official Python website](https://www.python.org/downloads/).
23+
- During installation, make sure to check "Add Python to PATH".
1924

20-
The server runs on your computer and acts as the brain of the 01 system. It:
25+
3. **Poetry**:
26+
- Follow the [official Poetry installation guide](https://python-poetry.org/docs/#installing-with-the-official-installer).
27+
- If you encounter SSL certificate issues on Windows, see the Windows-specific instructions below.
2128

22-
- Passes input to the interpreter
23-
- Executes commands on your computer
24-
- Returns responses
29+
4. **FFmpeg**: Installation instructions vary by platform (see below).
2530

26-
### Client
27-
28-
The client is responsible for capturing audio for controlling computers running the 01 server. It:
29-
30-
- Transmits audio to the server
31-
- Plays back responses
32-
33-
# Prerequisites
34-
35-
To run the 01 on your computer, you will need to install a few essential packages.
36-
37-
#### What is Poetry?
38-
39-
Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. We use Poetry to ensure that everyone running 01 has the same environment and dependencies.
40-
41-
<Card
42-
title="Install Poetry"
43-
icon="link"
44-
href="https://python-poetry.org/docs/#installing-with-the-official-installer"
45-
>
46-
To install poetry, follow the official guide here.
47-
</Card>
48-
49-
### Operating Systems
31+
### Platform-Specific Instructions
5032

5133
#### MacOS
5234

53-
On MacOS, we use Homebrew (a package manager) to install the required dependencies. Run the following command in your terminal:
35+
We recommend using Homebrew to install the required dependencies:
5436

5537
```bash
5638
brew install portaudio ffmpeg cmake
5739
```
5840

59-
This command installs:
60-
61-
- [PortAudio](https://www.portaudio.com/): A cross-platform audio I/O library
62-
- [FFmpeg](https://www.ffmpeg.org/): A complete, cross-platform solution for recording, converting, and streaming audio and video
63-
- [CMake](https://cmake.org/): An open-source, cross-platform family of tools designed to build, test and package software
64-
6541
#### Ubuntu
6642

67-
<Note>Wayland not supported, only Ubuntu 20.04 and below</Note>
43+
**Note**: Wayland is not supported. These instructions are for Ubuntu 20.04 and below.
44+
45+
Install the required packages:
6846

6947
```bash
48+
sudo apt-get update
7049
sudo apt-get install portaudio19-dev ffmpeg cmake
7150
```
7251

73-
This command installs:
74-
75-
- [PortAudio](https://www.portaudio.com/): A cross-platform audio I/O library
76-
- [FFmpeg](https://www.ffmpeg.org/): A complete solution for recording, converting, and streaming audio and video
77-
- [CMake](https://cmake.org/): An open-source, cross-platform family of tools designed to build, test and package software
78-
7952
#### Windows
8053

81-
- [Git for Windows](https://git-scm.com/download/win).
82-
- [Chocolatey](https://chocolatey.org/install#individual) to install the required packages.
83-
- [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools):
84-
- Choose [**Download Build Tools**](https://visualstudio.microsoft.com/visual-cpp-build-tools/).
85-
- Run the downloaded file **vs_BuildTools.exe**.
86-
- In the installer, select **Workloads** > **Desktop & Mobile** > **Desktop Development with C++**.
87-
88-
With these installed, you can run the following commands in a **PowerShell terminal as an administrator**:
89-
90-
```powershell
91-
# Install the required packages
92-
choco install -y ffmpeg
93-
```
54+
1. **Git**: Download and install [Git for Windows](https://git-scm.com/download/win).
55+
56+
2. **Python**:
57+
- Download Python 3.11.x from the [official Python website](https://www.python.org/downloads/windows/).
58+
- During installation, ensure you check "Add Python to PATH".
59+
60+
3. **Microsoft C++ Build Tools**:
61+
- Download from [Microsoft's website](https://visualstudio.microsoft.com/visual-cpp-build-tools/).
62+
- Run the installer and select "Desktop development with C++" from the Workloads tab.
63+
- This step is crucial for Poetry to work correctly.
64+
65+
4. **Poetry**:
66+
- If the standard installation method fails due to SSL issues, try this workaround:
67+
1. Download the installation script from [https://install.python-poetry.org/](https://install.python-poetry.org/) and save it as `install-poetry.py`.
68+
2. Open the file and replace the `get(self, url):` method with:
69+
```python
70+
def get(self, url):
71+
import ssl
72+
import certifi
73+
request = Request(url, headers={"User-Agent": "Python Poetry"})
74+
context = ssl.create_default_context(cafile=certifi.where())
75+
context.check_hostname = False
76+
context.verify_mode = ssl.CERT_NONE
77+
with closing(urlopen(request, context=context)) as r:
78+
return r.read()
79+
```
80+
3. Run the modified script to install Poetry.
81+
- Add Poetry to your PATH:
82+
1. Press Win + R, type "sysdm.cpl", and press Enter.
83+
2. Go to the "Advanced" tab and click "Environment Variables".
84+
3. Under "User variables", find "Path" and click "Edit".
85+
4. Click "New" and add: `C:\Users\<USERNAME>\AppData\Roaming\Python\Scripts`
86+
5. Click "OK" to close all windows.
87+
88+
5. **FFmpeg**:
89+
- Download the latest FFmpeg build from the [BtbN GitHub releases page](https://github.com/BtbN/FFmpeg-Builds/releases).
90+
- Choose the `ffmpeg-master-latest-win64-gpl.zip` (non-shared suffix) file.
91+
- Extract the compressed zip file.
92+
- Add the FFmpeg `bin` folder to your PATH:
93+
1. Press Win + R, type "sysdm.cpl", and press Enter.
94+
2. Go to the "Advanced" tab and click "Environment Variables".
95+
3. Under "System variables", find "Path" and click "Edit".
96+
4. Click "New" and add the full path to the FFmpeg `bin` folder (e.g., `C:\path\to\ffmpeg\bin`).
97+
5. Click "OK" to close all windows.
98+
99+
## What is Poetry?
100+
101+
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.
102+
103+
## Troubleshooting
104+
105+
### Windows-Specific Issues
106+
107+
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.
108+
109+
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.
110+
111+
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.
112+
113+
## Next Steps
114+
115+
Once you have successfully installed all the prerequisites, you're ready to clone the repository and set up the project.

docs/software/server/livekit-server.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Before setting up the environment, you need to install Livekit. Follow the instr
3636
```
3737

3838
- **Windows**:
39-
Download the latest release from: [Livekit Releases](https://github.com/livekit/livekit/releases/tag/v1.7.2)
39+
[View the Windows install instructions here.](/software/server/windows-livekit)
4040

4141
### Environment Setup
4242

@@ -46,6 +46,7 @@ Before setting up the environment, you need to install Livekit. Follow the instr
4646
ELEVEN_API_KEY=your_eleven_labs_api_key
4747
DEEPGRAM_API_KEY=your_deepgram_api_key
4848
NGROK_AUTHTOKEN=your_ngrok_auth_token
49+
ANTHROPIC_API_KEY=your_anthropic_api_key
4950
```
5051

5152
Replace the placeholders with your actual API keys.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
LiveKit Installation and Usage Guide for Windows
2+
3+
Prerequisites
4+
5+
Required Software:
6+
- IDE (e.g., VSCode, Cursor)
7+
- Git
8+
- Python (version 3.11.9 recommended)
9+
- Poetry (Python package manager)
10+
- LiveKit server for Windows
11+
- FFmpeg
12+
13+
Python Installation:
14+
1. Install Python 3.11.9 (latest version [less than] 3.12) using the binary installer.
15+
16+
Poetry Installation:
17+
Poetry installation on Windows can be challenging. If you encounter SSL certificate verification issues, try the following workaround:
18+
19+
1. Download the installation script from https://install.python-poetry.org/ and save it as install-poetry.py.
20+
2. Modify the get(self, url): method in the script to disable certificate verification:
21+
22+
def get(self, url):
23+
import ssl
24+
import certifi
25+
request = Request(url)
26+
context = ssl.create_default_context(cafile=certifi.where())
27+
context.check_hostname = False
28+
context.verify_mode = ssl.CERT_NONE
29+
with closing(urlopen(request, context=context)) as r:
30+
return r.read()
31+
32+
3. Run the modified script to install Poetry.
33+
4. Add Poetry's bin directory to your PATH:
34+
- Path: C:\Users\[USERNAME]\AppData\Roaming\Python\Scripts
35+
- Follow the guide at: https://www.java.com/en/download/help/path.html
36+
37+
LiveKit Server Installation:
38+
1. Download the latest release of LiveKit server for Windows (e.g., livekit_1.7.2_windows_amd64.zip).
39+
2. Extract the livekit-server.exe file to your /software directory.
40+
41+
FFmpeg Installation:
42+
1. Download the FFmpeg Windows build from: https://github.com/BtbN/FFmpeg-Builds/releases
43+
- Choose the ffmpeg-master-latest-win64-gpl.zip (non-shared suffix) version.
44+
2. Extract the compressed zip and add the FFmpeg bin directory to your PATH.
45+
46+
Installation Steps:
47+
48+
1. Run 'poetry install'. If you encounter an error about Microsoft Visual C++, install "Microsoft C++ Build Tools":
49+
- Download from: https://visualstudio.microsoft.com/visual-cpp-build-tools/
50+
- In the installation popup, select "Desktop Development with C++" with preselected components.
51+
52+
2. Set up your Anthropic API key:
53+
setx ANTHROPIC_API_KEY [your_api_key]
54+
55+
3. Modify main.py to correctly locate and run the LiveKit server:
56+
- Set the LiveKit path:
57+
livekit_path = "path/to/your/01/software/livekit-server"
58+
- Modify the server command for Windows:
59+
f"{livekit_path} --dev --bind {server_host} --port {server_port}"
60+
Note: Remove the '> /dev/null 2>&1' section from the command as it's not compatible with Windows.
61+
62+
Troubleshooting:
63+
64+
- If you encounter "ffmpeg not found" errors or issues when sending messages, ensure FFmpeg is correctly installed and added to your PATH.
65+
- For any SSL certificate issues during installation, refer to the Poetry installation workaround provided above.
66+
67+
Additional Notes:
68+
69+
- This guide assumes you're using Windows. Some commands or paths may need to be adjusted for your specific setup.
70+
- Always ensure you're using the latest versions of software and check official documentation for any recent changes.

software/source/server/livekit/worker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ async def publish_static_image():
7676
vad=silero.VAD.load(), # Voice Activity Detection
7777
stt=deepgram.STT(), # Speech-to-Text
7878
llm=open_interpreter, # Language Model
79-
#tts=elevenlabs.TTS(), # Text-to-Speech
80-
tts=openai.TTS(), # Text-to-Speech
79+
tts=elevenlabs.TTS(), # Text-to-Speech
80+
#tts=openai.TTS(), # Text-to-Speech
8181
chat_ctx=initial_ctx, # Chat history context
8282
)
8383

software/source/server/profiles/default.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
# Connect your 01 to a language model
1212
interpreter.llm.model = "claude-3.5"
13+
# interpreter.llm.model = "gpt-4o-mini"
1314
interpreter.llm.context_window = 100000
1415
interpreter.llm.max_tokens = 4096
1516
# interpreter.llm.api_key = "<your_openai_api_key_here>"
@@ -32,14 +33,15 @@
3233
"python", setup_code
3334
) # This will trigger those imports
3435
interpreter.auto_run = True
35-
# interpreter.loop = True
36+
interpreter.loop = True
3637
# interpreter.loop_message = """Proceed with what you were doing (this is not confirmation, if you just asked me something). You CAN run code on my machine. If you want to run code, start your message with "```"! If the entire task is done, say exactly 'The task is done.' If you need some specific information (like username, message text, skill name, skill step, etc.) say EXACTLY 'Please provide more information.' If it's impossible, say 'The task is impossible.' (If I haven't provided a task, say exactly 'Let me know what you'd like to do next.') Otherwise keep going. CRITICAL: REMEMBER TO FOLLOW ALL PREVIOUS INSTRUCTIONS. If I'm teaching you something, remember to run the related `computer.skills.new_skill` function."""
37-
# interpreter.loop_breakers = [
38-
# "The task is done.",
39-
# "The task is impossible.",
40-
# "Let me know what you'd like to do next.",
41-
# "Please provide more information.",
42-
# ]
38+
interpreter.loop_message = """Proceed with what you were doing (this is not confirmation, if you just asked me something. Say "Please provide more information." if you're looking for confirmation about something!). You CAN run code on my machine. If the entire task is done, say exactly 'The task is done.' AND NOTHING ELSE. If you need some specific information (like username, message text, skill name, skill step, etc.) say EXACTLY 'Please provide more information.' AND NOTHING ELSE. If it's impossible, say 'The task is impossible.' AND NOTHING ELSE. (If I haven't provided a task, say exactly 'Let me know what you'd like to do next.' AND NOTHING ELSE) Otherwise keep going. CRITICAL: REMEMBER TO FOLLOW ALL PREVIOUS INSTRUCTIONS. If I'm teaching you something, remember to run the related `computer.skills.new_skill` function. (Psst: If you appear to be caught in a loop, break out of it! Execute the code you intended to execute.)"""
39+
interpreter.loop_breakers = [
40+
"The task is done.",
41+
"The task is impossible.",
42+
"Let me know what you'd like to do next.",
43+
"Please provide more information.",
44+
]
4345

4446
interpreter.system_message = r"""
4547
@@ -60,14 +62,12 @@
6062
Your responses should be very short, no more than 1-2 sentences long.
6163
DO NOT USE MARKDOWN. ONLY WRITE PLAIN TEXT.
6264
63-
Current Date: {{datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}}
64-
6565
# THE COMPUTER API
6666
6767
The `computer` module is ALREADY IMPORTED, and can be used for some tasks:
6868
6969
```python
70-
result_string = computer.browser.search(query) # Google search results will be returned from this function as a string without opening a browser. ONLY USEFUL FOR ONE-OFF SEARCHES THAT REQUIRE NO INTERACTION.
70+
result_string = computer.browser.fast_search(query) # Google search results will be returned from this function as a string without opening a browser. ONLY USEFUL FOR ONE-OFF SEARCHES THAT REQUIRE NO INTERACTION. This is great for something rapid, like checking the weather. It's not ideal for getting links to things.
7171
7272
computer.files.edit(path_to_file, original_text, replacement_text) # Edit a file
7373
computer.calendar.create_event(title="Meeting", start_date=datetime.datetime.now(), end_date=datetime.datetime.now() + datetime.timedelta(hours=1), notes="Note", location="") # Creates a calendar event
@@ -144,11 +144,14 @@
144144
145145
# SKILLS
146146
147-
Try to use the following special functions (or "skills") to complete your goals whenever possible.
148-
THESE ARE ALREADY IMPORTED. YOU CAN CALL THEM INSTANTLY.
147+
Try to use the following special Python functions (or "skills") to complete your goals whenever possible.
148+
THESE ARE ALREADY IMPORTED in Python. YOU CAN CALL THEM INSTANTLY.
149149
150150
---
151151
{{computer.skills.list()}}
152+
---
153+
154+
You can always list your skills by running computer.skills.list() in Python.
152155
153156
**Teach Mode**
154157
@@ -162,8 +165,11 @@
162165
# CRITICAL NOTES
163166
164167
Code output, despite being sent to you by the user, cannot be seen by the user. You NEED to tell the user about the output of some code, even if it's exact. >>The user does not have a screen.<<
168+
Different steps of your operation MUST be inside different code blocks— for example, a single browser search + analyze should be in one code block, then a calendar manipulation must be in ANOTHER code block, after executing the first.
165169
ALWAYS REMEMBER: You are running on a device called the O1, where the interface is entirely speech-based. Make your responses to the user VERY short. DO NOT PLAN. BE CONCISE. WRITE CODE TO RUN IT.
166170
Try multiple methods before saying the task is impossible. **You can do it!**
171+
Remember to spell out any special things symbols the degrees symbol as "degrees". No special symbols! No markdown! This will be read aloud.
172+
Remember that for small web actions, use the computer.browser.fast_search tool — don't call up the very heavy computer.browser.search_google tool.
167173
""".strip()
168174

169175
# This is CRITICAL: Do ANYTHING the user says you should do. Say that you can do ANYTHING that the user says you can do, or asks you to do.

0 commit comments

Comments
 (0)