|
# Safe Mode |
|
|
|
**⚠️ Safe mode is experimental and does not provide any guarantees of safety or security.** |
|
|
|
Open Interpreter is working on providing an experimental safety toolkit to help you feel more confident running the code generated by Open Interpreter. |
|
|
|
Install Open Interpreter with the safety toolkit dependencies as part of the bundle: |
|
|
|
```shell |
|
pip install open-interpreter[safe] |
|
``` |
|
|
|
Alternatively, you can install the safety toolkit dependencies separately in your virtual environment: |
|
|
|
```shell |
|
pip install semgrep |
|
``` |
|
|
|
## Features |
|
|
|
- **No Auto Run**: Safe mode disables the ability to automatically execute code |
|
- **Code Scanning**: Scan generated code for vulnerabilities with [`semgrep`](https://semgrep.dev/) |
|
|
|
## Enabling Safe Mode |
|
|
|
You can enable safe mode by passing the `--safe` flag when invoking `interpreter` or by configuring `safe_mode` in your [config file](https://github.com/KillianLucas/open-interpreter#configuration). |
|
|
|
The safe mode setting has three options: |
|
|
|
- `off`: disables the safety toolkit (_default_) |
|
- `ask`: prompts you to confirm that you want to scan code |
|
- `auto`: automatically scans code |
|
|
|
### Example Config: |
|
|
|
```yaml |
|
model: gpt-4 |
|
temperature: 0 |
|
verbose: false |
|
safe_mode: ask |
|
``` |
|
|
|
## Roadmap |
|
|
|
Some upcoming features that enable even more safety: |
|
|
|
- [Execute code in containers](https://github.com/KillianLucas/open-interpreter/pull/459) |
|
|
|
## Tips & Tricks |
|
|
|
You can adjust the `system_message` in your [config file](https://github.com/KillianLucas/open-interpreter#configuration) to include instructions for the model to scan packages with [`guarddog`]() before installing them. |
|
|
|
```yaml |
|
model: gpt-4 |
|
verbose: false |
|
safe_mode: ask |
|
system_message: | |
|
# normal system message here |
|
BEFORE INSTALLING ANY PACKAGES WITH pip OR npm YOU MUST SCAN THEM WITH `guarddog` FIRST. Run `guarddog pypi scan $package` for pip packages and `guarddog npm scan $package` for npm packages. `guarddog` only accepts one package name at a time. |
|
``` |
|
|