Sage - a terminal AI assistant for OpenAI-compatible API endpoints
Project description
🧙 Sage — Your AI Assistant in the Terminal
Sage is a smart AI helper that lives in your computer's terminal. You type what you want in plain English, and Sage helps you get it done — reading and writing files, running tasks, understanding images, and even creating images.
Think of it as a helpful assistant you can chat with, right in your terminal.
Sage connects to any OpenAI-compatible API endpoint (such as a LiteLLM proxy), so you can point it at whatever models your provider offers.
⚠️ Before You Start
You need three things for Sage to work:
- Python installed on your computer (version 3.10 or newer). If you don't have it, download it from https://www.python.org/downloads/ and during installation, tick the box that says "Add python.exe to PATH".
- An API endpoint URL — the address of your OpenAI-compatible / LiteLLM
server (for example,
https://your-litellm-server.com). - An API key for that endpoint.
(If you don't have the endpoint URL or key, ask whoever set up your AI gateway.)
📥 How to Install (One Time)
Sage is installed with pipx, a tool that installs Python command-line apps in their own isolated environment so they don't clash with anything else on your machine.
-
Install pipx (skip if you already have it) — open a terminal and run:
python -m pip install --user pipx python -m pipx ensurepath -
Close that terminal and open a new one. (Search for "Command Prompt" or "Terminal" in the Windows Start menu.) This step is needed so your terminal picks up the updated PATH.
-
Install Sage:
pipx install litellm-sage -
Test it — type this and press Enter:
sage --versionIf you see a version number, you're ready! 🎉
The first time you actually run
sage(see below), it will start a short guided setup to collect your endpoint URL and API key.
You only do this once. To upgrade later, run pipx upgrade litellm-sage.
⚙️ Your Settings
The first time you run sage and it can't find a settings file, it
automatically starts a short guided setup right there in the terminal:
- It creates a
.sagefolder in your user folder for you. - It asks for your endpoint URL and API key — just answer the two questions.
- Everything else (
MODEL,IMAGE_MODEL,VERIFY_TLS) is filled in with sensible defaults automatically.
That's it — once setup finishes, Sage starts normally and remembers your
answers for next time. If you quit partway through (e.g. with Ctrl + C),
no settings file is created, so the same guided setup will simply run again
the next time you start sage.
Sage stores these settings in a file at:
C:\Users\<your-name>\.sage\.env
To change your settings later, you can edit this file directly instead of redoing the guided setup:
- Open
.envin a text editor (make sure it's not saved as.env.txt— in Notepad, choose "All Files" as the type when saving). - Update the values, one per line, like this:
API_KEY=your-api-key-here BASE_URL=https://your-litellm-server.com MODEL=claude-opus-4-8 IMAGE_MODEL=gemini-3-pro-image VERIFY_TLS=true
The available settings are:
| Setting | What it is |
|---|---|
API_KEY |
Your API key |
BASE_URL |
Your endpoint URL |
MODEL |
The default AI model to chat with |
IMAGE_MODEL |
The model used for creating images |
VERIFY_TLS |
Set to false if your server uses a private certificate |
API_KEY and BASE_URL are required — Sage won't start without them.
MODEL, IMAGE_MODEL, and VERIFY_TLS are optional and fall back to
sensible defaults if you leave them out.
🚀 How to Use Sage
-
Open a terminal in the folder you want to work in. (Tip: in File Explorer, type
cmdin the address bar and press Enter to open a terminal in that folder.) -
Type:
sage -
Now just talk to it in plain English. For example:
› summarize what the files in this folder are about › create a to-do list file with 5 example tasks › what does this spreadsheet contain? -
When you're done, type
/exitor pressCtrl + C.
🎨 Fun & Useful Things Sage Can Do
Look at an image and describe it
› /attach photo.png
› what's in this picture?
(Replace photo.png with your image's name. It must be in the same folder.)
Create an image from words
› /image a cute cartoon airplane flying over clouds
Sage will create the image, save it in your folder, and open it for you.
Ask it to do a task and check its own work
› create a file called notes.txt with today's date, then show me it worked
🎚️ Modes — Controlling How Much Sage Does on Its Own
Sage asks for your permission before making changes. You can change how
cautious it is by typing /mode followed by a name:
| Type this | What it does |
|---|---|
/mode plan |
Only looks and suggests — changes nothing |
/mode normal |
Asks you before every change (this is the default) |
/mode auto-edits |
Edits files automatically, asks before running tasks |
/mode auto |
Does everything automatically (still safe) |
Tip for beginners: stay in normal mode. It always asks first, so nothing happens without your OK.
💬 Handy Commands
Type these at any time:
| Command | What it does |
|---|---|
/help |
Shows the list of commands |
/mode |
Shows or changes how cautious Sage is |
/model |
Shows the AI models you can pick from |
/image <words> |
Creates a picture from your description |
/attach <file> |
Adds an image so Sage can look at it |
/reset |
Starts a fresh conversation |
/exit |
Closes Sage |
🤖 Choosing a Different AI Model
Different AI models are better at different things. To see and switch:
› /model
You'll see a numbered list. To switch, type /model and a number:
› /model 2
Sage remembers your choice for next time.
Note: The models Sage can use depend on what your API endpoint provides. If you pick a model your endpoint doesn't offer, Sage will let you know.
🔒 Is It Safe?
Yes — Sage is built to be careful:
- It only works inside the folder you open it in. It can't touch the rest of your computer.
- It asks before making changes (in normal mode).
- It refuses dangerous commands (like deleting everything).
- Before editing a file, it shows you exactly what will change.
📤 Sharing Sage With Someone Else
Want to give Sage to a colleague? There's no package to build or file to send — Sage is published on PyPI, so anyone can install it the same way you did.
Just point them at this same guide, or tell them:
- Install pipx (if they don't have it):
python -m pip install --user pipx python -m pipx ensurepath - Open a new terminal, then install Sage:
pipx install litellm-sage - Run
sage— it walks them through entering their own endpoint URL and API key (see "Your Settings" above), then starts right up.
Each person uses their own API key in their own .env file, so nobody's
credentials are shared.
(They'll need Python 3.10+ installed, plus their own endpoint URL and API key.)
❓ Something Went Wrong?
"sage is not recognized"
Close the terminal and open a brand-new one — pipx needs a fresh terminal to
pick up the PATH changes. If it still doesn't work, run
python -m pipx ensurepath again, then open another new terminal.
"Connection error"
Sage can't reach your endpoint. Check that the BASE_URL in your settings is
correct and that you can reach the server (e.g. you're on the right network
or VPN if it's a private endpoint).
"[config error] Missing API_KEY" or "Missing BASE_URL"
This usually means your settings file exists but is missing a value — edit
C:\Users\<your-name>\.sage\.env and fill in API_KEY and BASE_URL (see
"Your Settings" above). If the file doesn't exist at all, just run sage
to get the guided setup.
"team not allowed to access model" / model error
The selected model isn't available on your endpoint. Use /model to pick a
different one.
Sage can't see my image
Make sure the image is in the same folder you opened Sage in, and that you
typed /attach with the correct file name first. Also make sure your chosen
model supports image analysis.
📝 Quick Reference Card
Install: pipx install litellm-sage
First run: sage (walks you through setup — endpoint URL + API key)
Start Sage: sage
Ask something: just type it and press Enter
Look at an image: /attach picture.png then ask about it
Make an image: /image a sunset over the ocean
Change caution: /mode plan | normal | auto-edits | auto
Pick a model: /model then /model <number>
Get help: /help
Quit: /exit
Enjoy using Sage! 🧙✨
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file litellm_sage-0.1.0.tar.gz.
File metadata
- Download URL: litellm_sage-0.1.0.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
170cd50cf8a86bbc9d930b40488f903175cf00feb0abd12373c4eafdba86bacc
|
|
| MD5 |
45054a5dc1ed27d6d0a30cbf401d26b5
|
|
| BLAKE2b-256 |
b9a8b91b7b7526223b6ceb13df425784469aff0f727feffd7d11cceac2f7daee
|
Provenance
The following attestation bundles were made for litellm_sage-0.1.0.tar.gz:
Publisher:
publish.yml on ikeawesom/sage-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
litellm_sage-0.1.0.tar.gz -
Subject digest:
170cd50cf8a86bbc9d930b40488f903175cf00feb0abd12373c4eafdba86bacc - Sigstore transparency entry: 2194648609
- Sigstore integration time:
-
Permalink:
ikeawesom/sage-cli@f5f3aa6ef62203f4028e92808ea85e2b0d91cc26 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ikeawesom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5f3aa6ef62203f4028e92808ea85e2b0d91cc26 -
Trigger Event:
release
-
Statement type:
File details
Details for the file litellm_sage-0.1.0-py3-none-any.whl.
File metadata
- Download URL: litellm_sage-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c8f56f9238645559e5a582f294decda9252651c24d2075356342ee9c2c0a298
|
|
| MD5 |
0a31f1669d2c86f309fd9eca1d9c1346
|
|
| BLAKE2b-256 |
f21bebfef030f40bed9733bb2b21f34f5833c2c49de0aa881237662405151789
|
Provenance
The following attestation bundles were made for litellm_sage-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ikeawesom/sage-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
litellm_sage-0.1.0-py3-none-any.whl -
Subject digest:
0c8f56f9238645559e5a582f294decda9252651c24d2075356342ee9c2c0a298 - Sigstore transparency entry: 2194648611
- Sigstore integration time:
-
Permalink:
ikeawesom/sage-cli@f5f3aa6ef62203f4028e92808ea85e2b0d91cc26 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ikeawesom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5f3aa6ef62203f4028e92808ea85e2b0d91cc26 -
Trigger Event:
release
-
Statement type: