Gide CLI Documentation
~ % gide
Gide CLI
The same local agent behind the GIDE editor, in your terminal. Same server, same model, same conversation history. Install it with one command.
Overview
The Gide CLI is an agentic coding tool that reads your codebase, edits files and runs commands, driven by a model running on your own machine.
It is not a separate product from the GIDE editor. The CLI and the app talk to the same local server, load the same model, and share your account, folder trust and conversation history. You can start a task in the app and continue it in the terminal.
Get started
Install with a single command. Pick your platform below. The installer verifies a checksum before unpacking and puts gide on your PATH.
$ curl -fsSL https://generativeide.com/install.sh | sh
irm https://generativeide.com/install.ps1 | iex
curl -fsSL https://generativeide.com/install.cmd -o install.cmd && install.cmd && del install.cmd
Not sure which Windows shell you are in? Your prompt shows PS C:\ in PowerShell and C:\ in cmd.
Then start Gide in any project. Replace your-project with a directory on your machine:
$ cd your-project$ gide
On first run you will sign in, approve trust for the folder, and set up a model. That is it. Continue with the Quickstart.
What you can do
Build features and fix bugs
Describe what you want in plain language. Gide plans the approach, reads the files it needs, writes the code, and stops for your approval before anything touches disk.
$ gide "add pagination to the users endpoint and update the tests"
Work without sending your code anywhere
The model runs on your hardware. Your code, prompts and file contents stay on the machine, so there is no API bill, no per-token metering, and it works on a plane. Connect a cloud provider only when you explicitly want one.
Script it
Print mode runs one turn and exits with a meaningful code, so Gide composes with the rest of your shell.
$ gide -p "run the tests and fix any failures"$ tail -200 app.log | gide -p "summarise the errors"$ git diff main --name-only | gide -p "review these files for security issues"
Use it as a local OpenAI-compatible API
Point any OpenAI SDK at your own machine for raw model access, with none of the agent harness in the way. See Cloud and API.
The app and the CLI run side by side. The model answers one turn at a time, so if the app is mid-turn the CLI tells you it is busy rather than queueing silently.
Requirements
Three things gate a session. The server is not one of them, because the CLI starts one for you if none is running.
A Gide account
Every session needs a signed-in account with an active subscription, checked the same way the app checks it. A valid cached session keeps working offline, so you can keep coding without a connection.
$ gide login$ gide auth status
Signing in on the website is only half the flow. On your dashboard you also need to click Login to GIDE App, which is what delivers the session to this machine.
Folder trust
Gide reads, edits and runs commands inside the folder you open, and nowhere else. The first run in a directory shows what it is about to trust and asks. Trust covers the whole subtree and is shared with the app.
$ gide trust$ gide trust add$ gide trust list
Sensitive locations such as your home directory or a filesystem root need the folder name typed to confirm, and are never granted automatically. A non-interactive run will not prompt; it exits so a script cannot silently gain access.
A model, set up on first run
You do not need a model in advance. The first interactive run offers to download the recommended one or connect a cloud provider with your own key.
Install details
Versions are installed side by side with a current link pointing at the active one, so an update can be rolled back.
- Files land in
~/.gide/cli/versions/on macOS and Linux, and under%USERPROFILE%\.gide\clion Windows. - The command is
~/.local/bin/gide, or%LOCALAPPDATA%\gide\bin\gide.cmdon Windows. - Windows adds that directory to your PATH automatically. On macOS and Linux the installer prints the line to add if it is not already there.
- Model weights are never part of the download. They arrive on first run.
The Windows download is around 800 MB against roughly 100 MB on macOS. Windows ships every GPU backend in one package, CUDA for NVIDIA, Vulkan for AMD and Intel, plus a CPU fallback, and bundles the CUDA runtime so you do not need the toolkit installed. macOS needs only a small Metal library.
Updating
The CLI checks for a new version once a day and mentions it in the banner. Updating is explicit.
$ gide update
Removing it
There is no uninstall command. Delete the shim and the install directory.
$ rm ~/.local/bin/gide && rm -rf ~/.gide/cli
Remove ~/.gide/cli, not ~/.gide. The parent directory also holds your downloaded models, API keys, trust grants and conversation history, all shared with the GIDE app.
Quickstart
Open a project and describe what you want. Gide explores the codebase, proposes edits, and stops for approval before writing anything or running any command.
- 1
Open a project
Run
gidein any directory with code in it. - 2
Approve the folder
Confirm that Gide may work in this directory. It is remembered, and shared with the app.
- 3
Set up a model
Download the recommended model, or connect your own API key. This happens once.
- 4
Describe a task
Type it in plain language. Gide reads what it needs and proposes changes.
- 5
Approve the change
Review the diff and accept or reject. Nothing is written until you decide.
Here are real recorded sessions, played back at their original pace:
Command reference
Global flags
| -p, --print <task> | Run one turn non-interactively and exit. Gates are rejected unless --allow-all is set. |
| --allow-all, --yolo | Auto-accept file-write and command gates. |
| -c, --continue | Continue the previous conversation in this directory. |
| -r, --resume | Pick any past conversation in this directory from a list. |
| --root <dir> | Project root. Defaults to the current directory. |
| -v, --version | Print the version and exit. |
| -h, --help | Print usage and exit. |
Commands
| gide | Start an interactive session in the current directory. |
| gide doctor | Check the local setup and report what is wrong. |
| gide server status | Show the running server and which clients are attached. |
| gide server start | stop | restart | Manage the shared local server. |
| gide server logs [-f] | Tail the server log. |
| gide models [list] | Installed models plus what is available to download. |
| gide models pull [id] | Download a model. Resumable, so Ctrl-C pauses. |
| gide models select <family|file> | Switch models, or attach any .gguf on your machine. |
| gide models profile [id] | Inspect the detected behavior profile of an added model. |
| gide models rm <id> | Detach a model, optionally deleting the weights. |
| gide login | logout | Sign in, or remove the local session. |
| gide auth status | Show the signed-in account and plan. |
| gide trust [status|list|add|revoke] | Manage which folders Gide may work in. |
| gide connect [provider] | Use a cloud provider with your own API key. |
| gide disconnect [--forget] | Return to the local model. |
| gide cloud [status|connect|disconnect] | Private Cloud, a hosted model on Gide's key. |
| gide apikey [create|list|revoke] | Manage keys for the local OpenAI-compatible API. |
| gide usage [day|week|month] | Tokens and tools used, split by client and key. |
| gide hardware | GPU, VRAM, available backends and platform. |
| gide update | Self-update a standalone install. |
Exit codes
Print mode is meant to be scripted, so failures are distinguishable rather than all being 1.
| 0 | Success. |
| 1 | An error occurred, or a check failed. |
| 2 | The turn threw an unexpected error. |
| 3 | The model is busy. Another client holds it. |
| 4 | Blocked on approvals. A gate was rejected in a non-interactive run. |
| 5 | Authentication required. |
| 6 | The folder is not trusted. |
| 130 | Interrupted with Ctrl-C. |
| 143 | Terminated. |
Slash commands
Inside a session, type / to open the command menu with autocomplete. There are thirteen commands. Several also take arguments, so you can skip the interactive picker when you already know what you want.
Session
| /help | Every command and keyboard shortcut, printed into the session. |
| /clear | Start a fresh conversation. Clears the screen and begins a new session id, so earlier turns are no longer context. |
| /status | Your account, the active model, the server address, the session id and the working directory. |
| /exit | Quit. Typing exit or quit without a slash does the same thing. |
Models
| /model | Open the model picker. Arrow keys choose, enter switches. On a model you do not have yet, enter opens a file picker so you can attach your own .gguf. |
| /model pull [id] | Download a model without leaving the session. Resumable, so Ctrl-C pauses rather than losing progress. |
| /model <family> [file.gguf] | Switch directly to a model by name, or attach a specific file, skipping the picker. |
| /temperature | Open the temperature scale. Arrow keys adjust, enter applies. Takes effect from your next message. |
| /temperature <value|reset> | Set it directly, or return it to the recommended value for this model. |
| /layers | Open the GPU-layers scale. Applying reloads the model in place, which takes a moment. |
| /layers <value|reset> | Set the layer count directly, or restore the recommended one. |
| /hardware | GPU, VRAM, which backends are available, and the platform. |
Account and providers
| /login | Sign in to your Gide account. Opens the browser and waits for you to connect this machine. |
| /cloud | Connect a cloud provider using your own API key. Pick the provider, paste the key into a masked box, and it is validated before being saved. |
| /connect [provider] | The same flow, addressed by provider name so you skip the picker. |
| /private | Gide Private Cloud, a hosted model on our key. Connects when off, and offers to disconnect when already on. Enterprise plans only. |
Usage
| /usage | Tokens spent over the last week, broken down by client and by API key. |
| /usage day | Just today. |
| /usage month | The last thirty days. |
Anything that is not a recognised command is sent to the model as a normal message, so a stray slash will not silently do nothing. Unknown commands are named back to you with a pointer to /help.
Interactive session
Approving changes
Nothing is written and no command runs until you say so. A write gate shows the exact diff; a command gate shows the command and where it would run. Try it:
Allowing all lifts the gate for the rest of the session only. Pressing escape always rejects.
Keyboard
| enter | Send. |
| \ + enter, or ctrl+j | Insert a newline. |
| @ | Mention a project file. Tab or enter inserts, escape dismisses. |
| escape | Clear the input, or interrupt a running turn. |
| up / down | Prompt history, move between lines, choose in menus. |
| ctrl+r | Search prompt history. |
| ctrl+c | Clear the input. Press twice to quit. |
| ctrl+l | Redraw the screen. |
| ctrl+a / ctrl+e | Jump to start or end of line. |
| ctrl+u / ctrl+k | Delete to start or end of line. |
| ctrl+w | Delete the previous word. |
The @ picker walks your project honouring its own .gitignore, and ranks matches by filename before path. While a turn is running you can keep typing. Enter queues the prompt and it sends when the turn finishes.
Escape asks the server to stop generating rather than just closing the connection. That difference matters, because a dropped connection with a write gate open counts as approval on the server side.
Resuming work
$ gide --continue$ gide --resume
History is stored per project and written by whichever client ran the turn, so a conversation started in the app can be resumed in the terminal.
Models
Models are shared with the app and stored once in ~/.gide/models. Downloads are resumable and checksum verified.
$ gide models$ gide models pull$ gide models select qwen
Using your own GGUF
Any GGUF file works. Point Gide at one and the server reads the file's own metadata, its architecture, chat template and tool-call format, to derive a behavior profile. The model does not have to be one Gide already knows about.
$ gide models select ~/models/my-model.gguf$ gide models profile
The profile is written to a JSON file you can edit if a guess is wrong. Inside a session, /model offers the same thing through a file picker.
Tuning
/temperature and /layers open interactive scales. Temperature applies from the next message, while changing GPU layers reloads the model in place. Run gide hardware to see what your machine supports.
Cloud and API
Bring your own key
If you would rather use a frontier model for a task, connect a provider with your own key. Prompts then go to that provider instead of staying local, and the CLI says so when you connect.
$ gide connect anthropic$ gide disconnect
On macOS the key is stored in your Keychain. On Windows and Linux there is no OS keystore integration yet, so it is written to a permission-restricted file at ~/.gide/online_keys.json.
OpenAI-compatible API
The local server exposes an OpenAI-compatible endpoint, so any tool or SDK that speaks that protocol can use your local model. This is raw model access with your system prompt and your message history, and none of Gide's agent harness or memory.
$ gide apikey create my-tool
The key is shown once and stored only as a hash. Revoking takes effect immediately.
Streaming is supported, and reasoning models split their thinking into a separate field. Tool calling, multiple completions, response formats and logprobs are not supported, and each returns a clear error rather than failing oddly. A busy model returns 429 with a retry header, and the endpoint is disabled while Private Cloud is connected. Usage is metered per key and appears in gide usage.
Private Cloud
Enterprise plans can run against a hosted model on Gide's key, for machines that cannot run one locally.
Configuration
Environment variables
| GIDE_PLAIN=1 | Force the plain line-mode REPL instead of the full interface. |
| GIDE_THEME=light | Palette for light terminals. |
| NO_COLOR=1 | Disable all styling. |
| FORCE_COLOR=1 | Keep colors even when output is piped. |
| GIDE_TRUST_ROOTS | Folders trusted for this process only, for CI and containers. |
| GIDE_KEY_STORE=file | Use the file key store instead of the macOS Keychain. |
| GIDE_LOGIN_URL | Override the login page. |
| GIDE_INSTALL_DIR | Override where the CLI is installed. |
Files
Everything lives under ~/.gide and is shared with the app.
| models/ | Downloaded model weights. |
| model.json | Which model or provider is selected. |
| trust.json | Folders you have trusted. |
| session.json | Your signed-in account session, encrypted. |
| api_keys.json | Hashes of your API keys, never the keys themselves. |
| logs/ | Server logs. |
| cli/ | The installed CLI, sessions and prompt history. |
| <project>/.gide/history/ | Per-project transcripts. Self-ignoring, so never committed. |
Troubleshooting
Start here. It checks every part of the local setup and names what is wrong.
$ gide doctor
| model busy | The app is mid-turn, since the model answers one at a time. Wait, or run gide server restart --force in another terminal. |
| Authentication required | Run gide login, and remember the dashboard button that connects this machine. |
| Folder not trusted | Run gide trust add here, or set GIDE_TRUST_ROOTS for a one-off run. |
| no Gide server found | No server bundle was found in the repo, the standalone install, or an installed app. Reinstall the CLI, or launch the app once. |
| Gide update required | The CLI is newer than the running server. Update the app, or run gide update. |
| No colors or boxes | Git Bash and mintty report their input as a pipe, so the plain interface is used. Run in Windows Terminal for the full one. |
| Something crashed | Run gide server logs -f to watch the server side as it happens. |