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
Before you begin, you need:
An Olares device running Olares 1.12.7 or later, with sufficient disk space and memory.
Access to Router for local model connections.
The following model:
Used for Model How to get it Local model connection Qwen3.8-27B (llama.cpp) Install from Market
Optional: Use a different model
Install another chat model from Market, or create a model instance with Engine Base apps. Then select it as the default chat model on Router's Default models page. Clients configured with default-chat use the new default without changing their model settings.
To keep a client on one specific model, use the full model name from Router's How to call this model window instead.
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.
Before you begin, create a Poolside account and obtain an API key.
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 Qwen3.8-27B.
Get model connection details
How model connections work
On Olares 1.12.7 and later, AI clients connect through Olares Router. Router provides the Base URL and routes default-chat to the model selected on its Default models page.
This guide uses Qwen3.8-27B (llama.cpp) as the default chat model. For connection formats and API key requirements, see Connect AI apps.
For Qwen3.8-27B (llama.cpp):
Open Router from Launchpad. On Default models, set Qwen3.8-27B (llama.cpp) as the default chat model.
Go to LLM, find Qwen3.8-27B (llama.cpp), and click View connection example on its row.
In How to call this model, select Apps in Olares and copy the Base URL, including
/v1.For the model name, use
default-chat.Selecting a model in your app
default-chatis a routing name and does not appear in model lists loaded from Router. If the app you are connecting to Router loads a model list, adddefault-chatmanually. If the app only supports selecting a listed model, select the full model name shown in Router's How to call this model window.For the API key, leave the field empty. If the app you are connecting to Router requires a value, enter
olares.
Configure Pool CLI
Go to Settings > Applications > Pool CLI > Manage environment variables, and click edit to configure the following variables:
- USE_LOCAL_LLM: Set it to
trueto enable local model mode. - POOLSIDE_STANDALONE_BASE_URL: Enter the Base URL copied from Router. Use it exactly as displayed.
- POOL_MODEL: Enter
default-chat.
- USE_LOCAL_LLM: Set it to
Click Apply and wait for the Pool CLI container to restart.
Open Pool CLI from Launchpad, and 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.