Smartloop CLI is designed to use with studio desktop and interacting with local service to manage projects, documents, skills and connections
macOS and Linux:
curl -fsSL https://smartloop.ai/install | shWindows (PowerShell):
irm https://smartloop.ai/install.ps1 | iexThe binary goes to $CARGO_HOME/bin (~/.cargo/bin) when a Rust toolchain
already owns that directory, since it is on your PATH anyway; otherwise to
~/.local/bin. If the chosen directory is not on your PATH, the installer
appends an export line to the startup file for your shell — ~/.bashrc,
~/.zshrc, or fish_add_path in config.fish — so a new terminal picks it up.
Re-running the installer will not add that line twice.
On Windows the binary goes to %USERPROFILE%\.smartloop\bin and the installer
sets your user PATH through the registry. Restart the shell to pick it up.
Set SMARTLOOP_CLI_INSTALL_DIR to install elsewhere, or SMARTLOOP_CLI_VERSION
to pin a specific release.
Prebuilt binaries are published for Linux (x86_64, aarch64 — statically linked against musl), macOS (Apple Silicon and Intel) and Windows (x86_64).
Requires Rust (2024 edition):
cargo install --path .List projects:
smartloop project listOutput is rendered as a table showing each project's ID, name, and whether it is a system project.
Create a project from a blank template:
smartloop project create --name my-project
smartloop project create --name my-project --description "Research notes"A blank project starts with no skills; the service seeds it with the workspace defaults. Everything the project stores — skills, documents, its index — lives under the service's own project directory, so there is no working directory to choose.
Import a project from an archive produced by an earlier export:
smartloop project create --import my-project.zip
smartloop project create --import my-project.zip --name restored-project--name is optional here — pass it to rename the imported project. The import
gets a fresh project ID, and MCP OAuth credentials are stripped from the
archive on the way in.
Delete a project:
smartloop project delete --id <project-id>Start an interactive chat with the local agent:
smartloop runPass an initial prompt to send immediately; the session then keeps reading
new prompts from stdin until EOF, /quit, /exit, /q, or exit:
smartloop run "what are some things to do in madrid spain?"Options:
smartloop run --project <project-id> # defaults to the server's current project
smartloop run --session <session-id> # resume an existing session; a new one is created when omittedThe response streams token by token as it's generated. Progress from the
agent's tool calls (web search, document lookup, model selection, etc.) is
printed on stderr as [step] message lines, colored when the terminal
supports it, so it doesn't interleave with the streamed answer on stdout.
The CLI connects to the Smartloop API at http://localhost:38540 by default.
Point it elsewhere with SMARTLOOP_API_URL:
SMARTLOOP_API_URL=http://localhost:9000 smartloop project listReleased under the MIT License.