Code with Pool CLI
Pool CLI is a terminal-based coding agent that helps you read code, run terminal commands, and edit files using natural language. On Olares, this command-line interface runs inside a browser-based terminal equipped with a pre-configured Ubuntu development environment.
Learning objectives
In this guide, you will learn how to:
- Install Pool CLI from the Olares Market.
- Connect Pool CLI to a model using Poolside's cloud API or a local model.
- Execute a basic natural language coding workflow.
- Configure directory access for your development workspace.
- Manage software dependencies securely.
Prerequisites
An Olares device with sufficient disk space and memory.
A Poolside account, if you plan to use the cloud API service.
A local model optimized for coding running on your Olares device, if you plan to run tasks locally.
You can install local models using one of the following methods:
- Single-model application: One app that runs one specific model. This guide uses Qwen3-Coder 30B (Ollama).
- Ollama application: One app that hosts multiple models. Ensure Ollama is installed with at least one model downloaded, such as
qwen3-coder:30b.
Install Pool CLI
Open Market, and search for "Pool CLI".

Click Get, and then click Install. Wait for the installation to finish.
Connect to a model
Start the Pool CLI and connect it to a language model. Choose one of the following connection methods.
Connect using Poolside cloud service
Use this method to leverage Poolside's cloud-based inference API.
Open the Pool CLI from the Launchpad.
Enter the following command to trigger the login authentication:
bashpool setupSelect Log in with Poolside, and then enter your Poolside API key to authenticate.
Choose one of the following modes to run your tasks:
Connect using a local model
Use this method to run Pool CLI entirely offline with a local model. This example uses the model app Qwen3-Coder 30B (Ollama).
Install the model app Qwen3-Coder 30B (Ollama) from Market.

Open the model app from the Launchpad and wait for the download to complete.
Note down the exact model name displayed on the page. For example,
qwen3-coder:30b.
Open Settings, and then go to Applications > Qwen3-Coder 30B (Ollama) > Shared entrances.

Click Qwen3-Coder 30B, and then note down the endpoint URL. For example,
http://609c5d0c0.shared.olares.com.Go to Applications > Pool CLI > Manage environment variables, and then click edit to configure the following variables:
- USE_LOCAL_LLM: Set it to
trueto enable local model mode. - POOLSIDE_STANDALONE_BASE_URL: Enter the model app's endpoint URL with
/v1appended. For example,http://609c5d0c0.shared.olares.com/v1. - POOL_MODEL: Enter the model name you noted down earlier. For example,
qwen3-coder:30b.
- USE_LOCAL_LLM: Set it to
Click Apply. Wait for the Pool CLI container to restart.
Open the Pool CLI from the Launchpad, and then enter the following command to start a session.
bashpool-local
Code with natural language
After connecting to a model, you interact with Pool CLI using conversational prompts. The agent interprets your requests to write code, modify files, and execute terminal commands.
The following scenario demonstrates how to use the Pool CLI to generate and run a simple Python script.
Open the Pool CLI from the Launchpad.
Enter the following command to start an interactive session:
bashpoolEnter a natural language request. For example:
textCreate a Python script named greeting.py that outputs the current date and timeReview the agent's proposed code and actions. Pool CLI generates the script and asks for permissions to proceed.
Select to allow the operations. The terminal displays the output of your script.

To exit the interactive session, enter the following command:
bash/quitTo verify the output, open Files, and then go to Data > pool > home > work.

Manage the development environment
Pool CLI operates within a pre-configured Ubuntu 24.04 environment. Customize your directory access and install additional tools based on your project requirements.
Manage directory access
By default, all project work happens in the /opt/data directory. This directory persists your files across app restarts and is located at Files > Data > pool > home > work on Olares.
If you want Pool CLI to access files in your Home or External directories, configure the environment variables:
Open Settings, and then go to Applications > Pool CLI > Manage environment variables.
Specify the following variables as needed:
- ALLOW_HOME_DIR_ACCESS: Set to
trueto allow access to the Home directory in Files. This mounts the Home directory at/home/userdata/home/. - ALLOW_EXTERNAL_DIR_ACCESS: Set to
trueto allow access to the External directory, such as mounted NAS or USB drives. This mounts the External directory at/home/userdata/external/.
- ALLOW_HOME_DIR_ACCESS: Set to
Click Apply.
Review pre-installed development tools
Before you install additional software, review the tools already included in your workspace. The container image is based on Ubuntu 24.04 and comes with many common development tools pre-installed.
The following table lists the key categories and examples.
| Category | Included tools |
|---|---|
| Languages and runtimes | Python 3, Node.js, Go, Rust, Java (OpenJDK 21), Ruby, PHP 8.3, Lua, Perl, SQLite |
| Build tools | build-essential, cmake, ninja-build, clang, pkg-config,common -dev headers |
| CLI utilities | git, git-lfs, curl, wget, jq, yq, openssh-client, unzip,zip, rsync, tmux, htop, shellcheck |
| Database clients | postgresql-client, mysql-client, redis-tools |
Install additional software
If your project requires tools or libraries beyond the pre-installed ones, you must manage them within the container's security boundaries.
What you cannot install yourself
If your project requires a system-level library (e.g., libpq-dev, ffmpeg, libssl-dev), you cannot install it directly. These dependencies must be added to the base container image by the application maintainer.
What you can install in your workspace
Inside your writable directories (primarily /opt/data), you can install project-level dependencies without root privileges using common tools:
Python: Create a virtual environment and use
pip. For example:bashpython3 -m venv .venv source .venv/bin/activate pip install <package>Node.js: Use
npminside your project folder. For example:bashnpm install <package>Rust/Go (or other compiled languages): Install binaries to a user-writable path. For example:
bashcargo install --root ~/.local <package> # Rust go install <package>@latest # Go (installs to ~/go/bin)
FAQs
How to switch between cloud and local models?
- To switch from cloud mode to local mode, set
USE_LOCAL_LLMtotrueand configurePOOLSIDE_STANDALONE_BASE_URLandPOOL_MODELin the environment variables, then restart the app. - To switch from local mode to cloud mode, set
USE_LOCAL_LLMtofalseand restart the app. You might need to runpool setupagain to re-authenticate.
Missing language or library
Determine if the missing tool is a system-level dependency:
- System-level dependencies: You cannot install these yourself. The app maintainers must add them to the base image. If you need a system-level library that is not currently available, submit a GitHub Issue to request it.
- User-level dependencies: Use
venv,npm install, or similar local tools to install them.