Welcome to the Antigravity CLI Tutorial Series. Antigravity CLI is the terminal-first interface to work with Antigravity Agents. It can be used for all kinds of tasks ranging from coding to automating repeated tasks.
Antigravity CLI is part of the Antigravity 2 release. As the documentation states, “It brings the same core agentic capabilities as Antigravity 2.0 — including multi-step reasoning, multi-file editing, tool calling, and conversation history — directly to your terminal.”

Here are a few highlights at the time of the initial announcement, in terms of what Antigravity CLI brings to the table:
- Faster Execution: The new CLI is built in Go, making it noticeably snappier and more responsive than its predecessor.
- Asynchronous Workflows: This is a huge productivity boost. Users can now run large-scale tasks (like codebase refactors or deep research) in the background. The CLI will orchestrate the agents without locking up the active terminal session.
- Unified Architecture: The CLI shares the same backend agent harness as the new desktop app, Antigravity 2.0. This means any future improvements to the core agents will instantly apply to the terminal experience.
If you are looking for Gemini CLI, this is not the same as Antigravity CLI. Gemini CLI is the open-source version terminal interface that lets you use the power of the Gemini model for your tasks via natural language. It has its own ecosystem of Extensions and I have written a tutorial series on that earlier.
Installation
The installation is straightforward and binaries are available across major Operating System. I have taken the commands to run in the terminal directly from the installation document:
macOS | Linux
curl -fsSL https://antigravity.google/cli/install.sh | bash
Windows PowerShell
irm https://antigravity.google/cli/install.ps1 | iex
Windows CMD
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd && install.cmd && del install.cmd
This should ideally setup and install the Antigravity CLI (agy) in your system and in the Path.
For e.g. on my MacOS , the installer copied and setup the following executable here: /Users/romin/.local/bin/agyand there was an entry made in the profile to add that folder to the path.
# Added by Antigravity CLI installer
export PATH="/Users/romin/.local/bin:$PATH"
I suggest that we start with a specific folder agy-cli-projects and work through that for the rest of the tutorial.
Create a folder named agy-cli-projects and navigate into that. I have created it in my home folder but you can do that based on your preference.
Just check out the version of Antigravity CLI via the following command:
$ agy --version
1.0.1
Whoops! We are already at 1.0.1 at the time of writing.
Logging into Antigravity CLI
When we launch Antigravity CLI for the first time, it will ask you to login. Launch agy and it should show something similar to this:
▄▀▀▄
▀▀▀▀▀▀
▀▀▀▀▀▀▀▀
▄▀▀ ▀▀▄
▄▀▀ ▀▀▄
Welcome to the Antigravity CLI. You are currently not signed in.
Select login method:
> 1. Google OAuth
2. Use a Google Cloud project
[Use arrow keys to navigate, Enter to select]
Use your personal account for now. Choose 1. Google OAuth and press Enter. This will launch a browser and you can login with your Google Account. On successful authentication and authorization, you are asked to copy a code. Please come back into the Antigravity CLI terminal and paste the code.
Once the login is successful, the first thing it will ask you is where you trust the folder, as shown below:
Accessing workspace:
/Users/romin/agy-cli-projects
Do you trust the contents of this project?
Antigravity CLI requires permission to read, edit, and execute files here.
> Yes, I trust this folder
No, exit
↑/↓ Navigate · enter Confirm
Gemini 3.5 Flash (High)
You will see this typically in any new folder that you launch the Antigravity CLI on. We will come to more on this later in the series but for now, go ahead and say Yes, I trust this folder.
You are all set now and its waiting for your prompt:
▄▀▀▄ Antigravity CLI 1.0.1
▀▀▀▀▀▀ <YOUR_ACCOUNT_EMAIL>
▀▀▀▀▀▀▀▀ Gemini 3.5 Flash (High)
▄▀▀ ▀▀▄ ~/agy-cli-projects
▄▀▀ ▀▀▄
───────────────────────────────────────────────────────────
>
───────────────────────────────────────────────────────────
? for shortcuts Gemini 3.5 Flash (High)
Antigravity CLI — A few housekeeping commands
Notice that it is using Gemini 3.5 Flash as shown in the bottom right. The first thing ideally is to understand that most of the customization and settings that you need to do are available via the /config or /settingscommand.
Configuration / Settings
Go ahead and invoke the /config command. This will bring up various areas of Antigravity that you can customize based on your preferences. This includes the Color Scheme, Tool permission, telemetry settings and more.

For example, the Color Scheme brings up the following options, from which I can choose my preferred color scheme:

settings.json
The configuration settings need to be stored somewhere right? All of them get stored in ~/.gemini/antigravity-cli/settings.json file. A sample is shown below:
{
"colorScheme": "dark",
"model": "Gemini 3.5 Flash (High)",
"statusLine": {
"type": "",
"command": "",
"enabled": true
},
"trustedWorkspaces": [
"/Users/romin/antigravity-cli-projects",
"/Users/romin/agy-cli-projects"
]
}
You can notice the colorScheme that I have selected, the model and also various folders from where I have started Antigravity CLI and said yes to trusting the folders.
Note: You can modify the settings.json directly too and restart Antigravity CLI as a best practice to see the changes. But be sure of the settings, else it will display an error at startup. I suggest that given that the documentation is sparse at the moment, use the /settings or /config command in the Antigravity CLI to work with this file.
Tool Permission
An important setting to understand is the Tool Permission and I show the options below. You can either get to this via the /configcommand and then Tool Permission or you can simply use the command /permissions in the prompt.
Tool Permission
> request-review (current)
proceed-in-sandbox
always-proceed
strict
By default, it is set to request-review. Let’s understand this in more detail:
In Antigravity, Tool Permission settings control the balance between security (guarding your host system against unintended changes) and velocity (how autonomously the agent can work without pausing for your input).
request-review (Current Default)
In this mode, the agent is treated as a collaborative partner that checks in before performing any action that could affect your system or project files outside of pre-approved bounds.
How it works: Whenever the agent attempts to run a terminal command, perform a file operation (like writing/deleting), or call an external service where permission hasn’t been pre-approved, the execution pauses. The user is prompted to approve or reject the specific action.
Example:
- The agent needs to install a package using npm install lodash.Instead of running the command immediately, the CLI pauses and shows a prompt as shown below, and you have choice to decide whether to allow it to proceed or so on. It is recommended that you can keep this default setting, so that you get familiar with how your commands are being run.
Requesting permission for: npm install lodash
Do you want to proceed?
> 1. Yes
2. Yes, and always allow in this conversation for commands that start with 'npm install'
3. Yes, and always allow for commands that start with 'npm install' (Persist to settings.json)
4. No
proceed-in-sandbox
This mode allows the agent to execute terminal commands automatically, but within a secure, isolated container. The agent can run commands without prompting you, but those commands are executed in a virtualized sandbox (e.g., a lightweight container). They cannot modify your actual host machine’s filesystem or access your local network.
always-proceed
This is the fully autonomous mode, giving the agent maximum speed and capability. The agent is granted full permission to run commands and write files directly on your host machine. It will never prompt you for confirmation.
Example:
You leave a long-running task running overnight using the /goal command (e.g., “Refactor our styling system to use vanilla CSS and ensure all components build without error”). In this scenario, The agent writes dozens of files, runs npm run build , resolves compiler errors, installs helper packages, and runs git commands entirely on its own. The work completes without ever pausing to wait for your approval. (Use with caution: only use this in trusted, version-controlled repositories).
strict
This is a zero-trust, high-security mode. The agent’s capabilities are restricted to executing read tools. All non-read tools will require the user to be prompted for action.
Set a model
You can use the /model command to select a model that will be used. At the time of writing, this is the list of models shown when you use the /model command:
Switch Model
> Gemini 3.5 Flash (High) (current)
Gemini 3.5 Flash (Medium)
Gemini 3.1 Pro (High)
Gemini 3.1 Pro (Low)
Claude Sonnet 4.6 (Thinking)
Claude Opus 4.6 (Thinking)
GPT-OSS 120B (Medium)
Keyboard: ↑/↓ Navigate enter Select esc Go Back
You can choose any of the models as needed, based on your preference.
Antigravity CLI Reference (List of Commands and Shortcuts)
What are the commands and keyboard shorcuts Antigravity CLI. The command as expected /help is your friend. Alternately, you can just type a ? to get this list.
Try it out to see the range of commands available and learn a few shortcuts to navigate the terminal easily.
Here are all 34 commands available in 1.0.1 at the time of writing. Try out a few if you’d like. We will cover several of them as we go along in the series.

Changelog
Antigravity CLI is likely to undergo rapid changes. We saw that with Gemini CLI earlier, where there were almost daily updates. While we cannot predict the velocity of the releases, its good to know what is changing across the releases via the /changelog command. We are already seeing a good list of changes between the current version 1.0.1 vs 1.0.0 as shown below:

Exit Antigravity CLI
This can be done via the /quit command. If you are having difficulty to get to the prompt input, use esc esc to come out where you are.
Whenever you exit, you will see the command that is needed to continue the conversation. As an example, this is what I received. If you do that, you can resume the conversation and will have an entire list of prompts that you gave. Just use Arrows Keys (up and down) in the prompt to see the history.
Resume: agy --conversation=bbb2048c-7de6-4dd5-ba7e-8b0c27d46b95 (or -c)
Shell mode
This is similar to Gemini CLI and you can enter into a Shell mode, such that you can give shell commands without the need to exit Antigravity CLI and come back again to it.
Simply use the ! to go into Shell mode. You will notice that the prompt prefix will change from > to ! as shown below:

You can give commands like ls, pwd and other utilities that you might have too.
Our first coding task
I am going to create a folder inside of agy-cli-projects and start my Antigravity CLI inside of that. I have named the folder bq-release-notes since I am going to create a BigQuery Release Notes Reader application.
Let’s give Antigravity CLI our first task and ask it to build a web application that displays the content of a current RSS feed. Let’s say that I am very much interested in BigQuery Release notes. There is a RSS Feed for it.
I would like a web application in my prefered stack to be build to access this feed and show me the information.
I begin with the following prompt:
Please build a web application for me using Python Flask and plain vanilla HTML, JavaScript and CSS that fetches the BigQuery Release notes from (https://docs.cloud.google.com/feeds/bigquery-release-notes.xml) and shows them to me. A simple refresh button with a spinner is good enough, anytime I’d like to refresh the details. I would also like the ability to take any specific update, select it and then Tweet about it.
This results in the following response from Antigravity CLI:
I will start by exploring the workspace to see if there is an existing structure or if this is a brand new project.
● ListDir(/Users/romin/agy-cli-projects/bq-release-notes) (ctrl+o to expand)
I will read the BigQuery release notes XML feed to understand its structure (Atom/RSS elements, entry/item elements, namespaces, dates, titles, content) so that we can parse it
correctly in the Python Flask backend.
● ReadURL(https://docs.cloud.google.com/feeds/bigquery-release-notes.xml) (ctrl+o to expand)
I will view the fetched feed content saved locally to understand its format and structure.
● Read(/Users/romin/.gemini/antigravity-cli/brain/116191af-e6ea-4ba5-aa23-62f995bd068a/.system_generated/steps/6/content.md) (ctrl+o to expand)
▸ Thought for 2s, 2.3k tokens
Analyzing XML Feed Structure
I will write the implementation plan detailing the architecture, design aesthetic, components, and verification steps for the BigQuery Release Notes Web Application. This plan will be
written to the artifacts directory.
● Create(/Users/romin/.gemini/antigravity-cli/brain/116191af-e6ea-4ba5-aa23-62f995bd068a/implementation_plan.md) (ctrl+o to expand)
I have created the implementation_plan.md to outline the design and architecture of the BigQuery Release Notes Web Application.
Please review the plan, especially the approach for the Twitter Composer & Preview Card, and let me know if you approve or if there are any adjustments you'd like to make!
1 artifact · /artifact to review
Remember that behind the scenes, you get the same Antigravity harness and if you are familiar with Antigravity, you can see that it has created an artifact (file) for us to view. Artifacts are how the Antigravity CLI keeps us in the loop with an implementation plan, list of tasks that it is working on, verifiable outputs and more.
In this case, if you notice, it says and I quote “I will write the implementation plan detailing the architecture, design aesthetic, components, and verification steps for the BigQuery Release Notes Web Application. This plan will be written to the artifacts directory.”
Once it does that, it says “ I have created the implementation_plan.md to outline the design and architecture of the BigQuery Release Notes Web Application. Please review the plan, especially the approach for the Twitter Composer & Preview Card, and let me know if you approve or if there are any adjustments you’d like to make!”
You can see that it also mentions in the bottom right, that there is 1 Artifact to review and in this case, it is the implementation_plan.md.
Now remember, this is all in the terminal, so we will have to use that and see how it goes. It’s pretty neat if you ask me.
Give the command /artifact. This will display the following:

This clearly shows that there is a file implementation_plan.md created and I can use the arrow keys to open, approve, reject and so on. This should be familiar to those who have used earlier or even the recent version of Antigravity (the non-CLI app).
On opening it, I can see the entire artifact i.e. Implementation plan.

Just Escape and come back to the prompt, here you can approve it , if you’d like:

Alternately, you can reject or even converse with some changes or modifications that you like. For e.g. we will go full vibe mode and say approve.
This kicks off the next set of steps, where it will start the implementation i.e. creating files, running a few commans, etc. You will be prompted to approve and give permission to execute, as required.
In my case, I gave it the approval to create the Python virtual environment, install the dependencies via requirements.txt and so on.
In the background, it has also created a task.md file as part of the tasks that it has to do based on the implementation plan and it ticks off the individual tasks, as it completes them. You will just have to pay attention to the thought process and the tasks as it completes them. It makes for a fascinating experience.
Finally I get the message that I wanted to see:
I have successfully completed the implementation of the BigQuery Release Pulse web application!
The application dev server is up and running locally at http://127.0.0.1:5000.
Please refer to the walkthrough.md for details on the architectural implementation, the features we delivered, and verified test scenarios.
I also see that there are several artifacts as expected (Implementation Plan, Task List and a Walkthrough document)
Action required (3 left)
› task.md open
walkthrough.md
□ new implementation_plan.md
Media · 1 items (enter to expand)
If I look at the Task artifact, I get the following:
task.md
> 1 Tasks
2
3 [✓] Setup dependencies and environment
4 [✓] Implement backend Flask application ( app.py )
5 [✓] Implement frontend HTML structure ( templates/index.html )
6 [✓] Implement frontend CSS styling ( static/css/style.css )
7 [✓] Implement frontend JS logic ( static/js/app.js )
8 [✓] Verify local execution and manual test scenarios
9 [✓] Create walkthrough documentation ( walkthrough.md )
Good work.
I check the application in my browser and here it is. It looks great with a lot of features already thought out:

Here’s my Tweet feature too:

I can go on now with new features, some changes, etc. But we can stop for now. The idea was to demonstrate and check out what it can do with simple requirements.
Our first non-coding Task
Go to https://github.com/rominirani/gemini-cli-codelab-projects and check out the folder invoice-processing folder that has several invoices in the form of images.

Let’s create a new folder inside of agy-cli-projects named invoice-processing. Download the four files into that folder and launch Antigravity CLI from there. You can take a peek into any of the invoices. One of the files is shown below (its an image):

You can use the Shell mode ( ! ) and then use the ls command to verify if you see the four invoice files there.
● ! ls
⎿ inv1.png
inv2.png
inv3.png
inv4.png
Now give the following prompt:
Use @inv1.png and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
Notice that you can use @ and you will see a list of files that will come up and you can choose from them. In short, I am asking Antigravity CLI to analyze this image file and extract relevant information of the invoice that I am interested in.
I get the following output:
Analyzing Invoice Contents
Here is the extracted invoice information from inv1.png:
Invoice No │ Invoice Date │ Invoice Sent By │ Due Date │ Due Amount
─────────────────────────────┼─────────────────────────────┼─────────────────────────────┼─────────────────────────────┼────────────────────────────
01234 │ 11.02.2030 │ Adeline Palmerston │ 11.03.2030 │ $440
I can even ask it to simply go through the folder and extract information from all the invoices present in the folder. Here is the prompt:
The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
Here is the output:
Here is the extracted invoice information from all four files in the folder:
File │ Invoice No │ Invoice Date │ Invoice Sent By │ Due Date │ Due Amount
─────────────────────┼──────────────────────┼────────────────────┼────────────────────────────────────────┼────────────────────┼────────────────────
inv1.png │ 01234 │ 11.02.2030 │ Adeline Palmerston │ 11.03.2030 │ $440.00
inv2.png │ US-001 │ 11/02/2019 │ East Repair Inc. │ 26/02/2019 │ $154.06
inv3.png │ 123456789 (P.O. #) │ November 23, 2023 │ A Company With A Clever Name (docubee) │ November 30, 2023 │ $42.30
inv4.png │ [123456] │ 12/9/2019 │ Company Name │ 1/8/2020 │ $971.56
I could even go a bit different and ask it to highlight all invoices that are having payment date that has passed.
list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.
Here’s the output:

I suggest that you go ahead and try out all kinds of tasks that are non-coding related. Analyzing some files, organizing them and so on.
Schedule an instruction
You can use the /schedule command to automate recurring tasks or set one-time reminders.
Let’s see how things work, when we just give the /schedule command. I get the following helpful reply:
/schedule
Would you like to set up a recurring cron schedule or a one-time timer?
Please specify:
1. The timing: E.g., a duration in seconds (up to 900) or a cron expression (e.g., */5 * * * * ).
2. The prompt: What task or reminder you want to run when it fires.
I go ahead and ask it to do a one-minute timer and then remind me that there is a meeting:
> A one-time timer
For how many seconds (up to 900 seconds/15 minutes) should the timer run, and what reminder message (prompt) should be triggered when it fires?
────────────────────────────────────────────────────────────
> In 1 minute, remind me that there is a meeting
○ Schedule() (ctrl+o to expand)
I have set a 1-minute timer for you. I will notify you as soon as it fires.
Now, you can get back to your work with Antigravity CLI. Once the timer is up, it should fire and let you know. And yes , in a minute, I got this message:
⏰ Reminder: There is a meeting starting now!
Here are some examples:
- A Pomodoro Timer that you can set and then get back to work. It will then remind you that time is up.
/schedule duration=”600" prompt=”Remind me that the current task time is over” - In 3 minutes, run the following to check if migrations are successfully applied:
/schedule duration=”180" prompt=”Run ‘npm run db:status’ to verify if all migrations were successfully applied.” - Here is one to check the logs in some time and see if there are any new errors:
/schedule duration=”600" prompt=”Inspect the logs folder and check if there are any new error entries or uncaught exceptions.”
You can also do a recurring (Cron expression) schedule to do a task. For e.g. do something at 9:00 AM every monday, or every 12 hours, etc. Here are some examples (I recommend that you substitute it with your commands, utilities and specific instructions):
Standup Prep (Every weekday morning at 9:00 AM)
/schedule cron="0 9 * * 1–5" prompt="Generate a bulleted summary of all git commits and file modifications made in the workspace in the last 24 hours."
End-of-Day Code Quality Check (Every weekday at 5:00 PM)
/schedule cron="0 17 * * 1–5" prompt="Run 'npm test' and 'npm run lint' and report any test failures or code quality warnings."
Local Server Health Check (Every 10 minutes)
/schedule cron="*/10 * * * *" prompt="Check if the server running on http://localhost:3000 is still up and returning a 200 OK response."
Hourly Folder Scan (Every hour)
/schedule cron="0 * * * *" prompt="Scan the input directory for any new raw files, process them (put your rules here), and move them to the 'archive' folder."
Weekly Dependency Update Audit (Every Friday at 4:00 PM)
/schedule cron="0 16 * * 5" prompt="Run a security audit on project dependencies (e.g., 'npm audit' or 'pip-audit') and report any critical vulnerabilities."
As an example, I setup a one-time 10 minute timer and then another recurring timer than runs every 10 mins.
Once scheduled, I can interact in natural language with Antigravity CLI to find what tasks are running in the background. Just give a prompt like list my active tasks
> list my active tasks
● ManageTask(You have 2 background task(s) currently running:) (ctrl+o to expand)
Here are your currently active background tasks:
1. task-35
• Type: One-time Timer (600 seconds)
• Prompt: "Remind the user that the current task time is over."
• Start Time: 2026-05-22T20:26:11 (Local time)
2. task-43
• Type: Recurring Cron ( */10 * * * * — every 10 minutes)
• Prompt: "Check if the server running on http://localhost:3000 is still up and returning a 200 OK response."
• Start Time: 2026-05-22T20:33:29 (Local time)
You can now interact with it to even remove a task and so on.
We have a lot more to cover
We have just scratched the surface at this point with Antigravity CLI. There are several commands to still try out, in addition to key things like configuring plugins, MCP Servers, skills, background tasks, parallel tasks, context management and more. Later parts of the tutorial will cover them.
Transitioning from Gemini CLI to Antigravity CLI
If you have been using Gemini CLI, here are a few things that you need to understand.
First up, you are not going to lose any of favourite workflows. Antigravity CLI to a large extent retains most of the features that you have been used to from Gemini CLI. Since it is early days yet, it is expected that the product team will use this time to probably get more parity based on user feedback. When it comes to Antigravity CLI, note that at the start of the article, we highlighted its key points about parallel execution, shared backend harness of Antigravity 2.0 and faster execution times.
If you have been using a personal account with Gemini CLI, here are a few dates and events to keep in mind:
- June 18, 2026: This is the hard cutoff for individual and free-tier users. On this date, the Gemini CLI and Gemini Code Assist IDE extensions will stop serving requests.
Please read the following blogs for more details on what will work or not, post June 18 2026 , especially if you are using a personal account.
An important update: Transitioning Gemini CLI to Antigravity CLI
It is also important to understand a few changes from Gemini CLI, especially when it comes to configuration files that you were used to editing while tweaking and setting things up. This is critical since you might be having Extentions, MCP Servers, Skills and Context files that you were using with Gemini CLI.
Check out this section of the document on Migrating, that helps you understand what Antigravity CLI can directly import and use and a few key differences.
Google Antigravity
Conclusion
Thanks for reading this tutorial. This is just an initial introduction to help maximum number of users get started with Antigravity CLI. I will cover more parts in detail, as we move along.
Antigravity CLI Tutorial Series was originally published in Google Cloud – Community on Medium, where people are continuing the conversation by highlighting and responding to this story.
Source Credit: https://medium.com/google-cloud/antigravity-cli-tutorial-series-12b46cfe3bf2?source=rss—-e52cf94d98af—4
