Amazon Q CLI brings IDE-style autocomplete and agentic capabilities to your terminal.
😍 Features
🔮 Auto Completion: IDE-style completions to hundreds of popular CLIs like git, npm, docker, and aws.
💬 Natural Language Chat: Interact with your terminal using natural language to ask questions, debug issues, or explore the codebase.
🧠 Contextual Awareness: Integrates context from your local development environment, so answers are tailored to your specific code and setup.
🤖 Agentic Execution: Let Amazon Q take action: generate code, edit files, automate Git workflows, resolve merge conflicts, and more — with your permission.
This repo is dual licensed under MIT and Apache 2.0 licenses.
“Amazon Web Services” and all related marks, including logos, graphic designs, and service names, are trademarks or trade dress of AWS in the U.S. and other countries. AWS’s trademarks and trade dress may not be used in connection with any product or service that is not AWS’s, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits AWS.
Amazon Q CLI brings IDE-style autocomplete and agentic capabilities to your terminal.
😍 Features
git,npm,docker, andaws.⚡️ Installation
brew install amazon-q🚀 Start Contributing
Prerequisites
1. Clone repo
2. Setup
Hassle-free setup:
Or if you’d like to DIY:
Manual Setup
1. Install platform dependencies
For Debian/Ubuntu:
2. Install Rust toolchain using Rustup:
For pre-commit hooks, the following commands are required:
For MacOS development make sure the right targets are installed:
3. Setup Python and Node using
miseAdd mise integrations to your shell:
For zsh:
For bash:
For fish:
Install the Python and Node toolchains using:
4. Setup precommit hooks
Run
pnpmin root directory to add pre-commit hooks:3. Start Local Development
To compile and view changes made to
q chat:To run tests for the Q CLI crate:
To format Rust files:
To run clippy:
💡 Quick Tip for Onboarding
Use Q CLI to help you onboard Q CLI!
Start a
q chatsession:Once inside
q chat, you can supply project context by adding thecodebase-summary.mdfile:This enables Q to answer onboarding questions like:
“What does this crate do?”
“Where is X implemented?”
“How do these components interact?”
Great for speeding up your ramp-up and navigating the repo more effectively.
🏗️ Project Layout
Several projects live here:
autocomplete- The autocomplete react appdashboard- The dashboard react appfigterm- figterm, our headless terminal/pseudoterminal that intercepts the user’s terminal edit buffer.q_cli- theqCLI, allows users to interface with Amazon Q Developer from the command linefig_desktop- the Rust desktop app, usestao/wryfor windowing/webviewsfig_input_method- The input method used to get cursor position on macOSvscode- Contains the VSCode plugin needed for the Amazon Q Developer for command line to work in VSCodejetbrains- Contains the VSCode plugin needed for the Amazon Q Developer for command line to work in Jetbrains IDEsOther folder to be aware of
build-scripts/- Contains all python scripts to build, sign, and test the project on macOS and Linuxcrates/- Contains all internal rust cratespackages/- Contains all internal npm packagesproto/- protocol buffer message specification for inter-process communicationtests/- Contain integration tests for the projectsBelow is a high level architecture of how the different components of the app and their IPC:
🛡️ Security
See CONTRIBUTING for more information.
📜 Licensing
This repo is dual licensed under MIT and Apache 2.0 licenses.
“Amazon Web Services” and all related marks, including logos, graphic designs, and service names, are trademarks or trade dress of AWS in the U.S. and other countries. AWS’s trademarks and trade dress may not be used in connection with any product or service that is not AWS’s, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits AWS.