Prerequisites
Before starting, ensure you have:- Nix (preferred) or Rust toolchain (cargo, rustc)
- A Loom server running (default:
http://localhost:8080) - API keys configured server-side for your chosen LLM provider
Loom uses a server-side proxy architecture. You don’t need API keys on your local machine - they’re stored securely on the server.
Installation
1
Build the CLI
Choose your preferred build method:The binary will be available at
- Nix (Recommended)
- Cargo
./result/bin/loom2
Configure Server URL
Set your Loom server URL:Or pass it as a flag:
3
Authenticate
Log in to the Loom server:This will open your browser to complete OAuth authentication and store your token securely in the system keyring.
4
Start a REPL Session
Launch your first interactive session:You’ll see output like:
Your First Conversation
Let’s try a simple interaction:Available Commands
Session Management
Thread Search
Thread Sharing
Provider Selection
Choose your LLM provider:Provider models are configured server-side. The
--provider flag only selects which proxy endpoint to use.Remote Execution with Weavers
Weavers are ephemeral Kubernetes pods for running Loom sessions in isolated environments:1
Create a Weaver
2
List Running Weavers
3
Attach to a Weaver
4
Delete a Weaver
Configuration
Loom uses a layered configuration system:- Default values - Built-in defaults
- Config file -
~/.config/loom/config.toml - Environment variables -
LOOM_*prefixed - CLI arguments - Highest priority
Example Config File
~/.config/loom/config.toml
Auto-Commit Feature
Loom automatically creates git commits when file-modifying tools are executed:- File changes detected
- Tools executed (
edit_file,bash) - Conversation context
Logging
Control log output:Next Steps
Installation Details
Learn about Nix builds, cargo2nix, and development workflows
Tool System
Explore the available tools and how to implement custom tools
Thread System
Understand conversation persistence and FTS5 search
Architecture Overview
Read about Loom’s architecture and design principles
Troubleshooting
Connection Refused
If you seeConnection refused errors:
- Verify the server is running:
curl http://localhost:8080/health - Check your
--server-urlmatches the actual server - Ensure you’re authenticated:
loom login
Authentication Errors
401 Unauthorized responses mean:- You’re not logged in: Run
loom login - Your token expired: Run
loom logoutthenloom login - Server authentication is misconfigured
Tool Execution Failures
If tools fail:- Check workspace permissions:
ls -la $(pwd) - Verify you’re in the correct directory
- Check logs with
--log-level debug