Repository

amazon-q-developer-cli-autocomplete

๐Ÿ˜ Features

README

Amazon Q

<h4 align="center">
Amazon Q CLI brings IDE-style autocomplete and agentic capabilities to your terminal.
</h4>

GitHub commit activity GitHub open issues
[![Rust Test](https://github.com/aws/amazon-q-developer-cli/actions/workflows/rust.yml/badge.svg)](https://github.com/aws/amazon-q-developer-cli/actions/workflows/rust.yml) [![Typos Test](https://github.com/aws/amazon-q-developer-cli/actions/workflows/typos.yml/badge.svg)](https://github.com/aws/amazon-q-developer-cli/actions/workflows/typos.yml) [![Typescript Test](https://github.com/aws/amazon-q-developer-cli/actions/workflows/typescript.yml/badge.svg)](https://github.com/aws/amazon-q-developer-cli/actions/workflows/typescript.yml)

Amazon Q CLI Features

๐Ÿ˜ 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.

โšก๏ธ Installation

๐Ÿš€ Start Contributing

Prerequisites

  • MacOS
    • Xcode 13 or later
    • Brew

1. Clone repo

git clone https://github.com/aws/amazon-q-developer-cli-autocomplete.git

2. Setup

Hassle-free setup:

npm run setup

Or if you'd like to DIY:

<details>
<summary>Manual Setup</summary>

### 1. Install platform dependencies For Debian/Ubuntu: ```shell sudo apt update sudo apt install build-essential pkg-config jq dpkg curl wget cmake clang libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libdbus-1-dev libwebkit2gtk-4.1-dev libjavascriptcoregtk-4.1-dev valac libibus-1.0-dev libglib2.0-dev sqlite3 libxdo-dev protobuf-compiler ``` ### 2. Install Rust toolchain using [Rustup](https://rustup.rs): ```shell curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup default stable ``` For pre-commit hooks, the following commands are required: ```shell rustup toolchain install nightly cargo install typos-cli ``` For MacOS development make sure the right targets are installed: ```shell rustup target add x86_64-apple-darwin rustup target add aarch64-apple-darwin ``` ### 3. Setup Python and Node using [`mise`](https://mise.jdx.dev) Add mise integrations to your shell: For zsh: ```shell echo 'eval "$(mise activate zsh)"' >> "${ZDOTDIR-$HOME}/.zshrc" ``` For bash: ```shell echo 'eval "$(mise activate bash)"' >> ~/.bashrc ``` For fish: ```shell echo 'mise activate fish | source' >> ~/.config/fish/config.fish ``` Install the Python and Node toolchains using: ```shell mise trust mise install ``` ### 4. Setup precommit hooks Run `pnpm` in root directory to add pre-commit hooks: ```shell pnpm install --ignore-scripts ```

</details>

3. Start Local Development

To compile and view changes made to q chat:

cargo run --bin q_cli

If you are working on other q commands, just append -- <command name>. For example, to run q login, you can run cargo run --bin q_cli -- login

To run tests for the Q CLI crate:

cargo test -p q_cli

To format Rust files:

cargo +nightly fmt

To run clippy:

cargo clippy --locked --workspace --color always -- -D warnings

๐Ÿ’ก Quick Tip for Onboarding

Use Q CLI to help you onboard Q CLI!

Start a q chat session:

q chat

Once inside q chat, you can supply project context by adding the codebase-summary.md file:

/context add codebase-summary.md

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 app
  • dashboard - The dashboard react app
  • figterm - figterm, our headless terminal/pseudoterminal that
    intercepts the userโ€™s terminal edit buffer.
  • q_cli - the q CLI, allows users to interface with Amazon Q Developer from
    the command line
  • fig_desktop - the Rust desktop app, uses
    tao/wry
    for windowing/webviews
  • fig_input_method - The input method used to get cursor
    position on macOS
  • vscode - Contains the VSCode plugin needed
    for the Amazon Q Developer for command line to work in VSCode
  • jetbrains - Contains the VSCode plugin
    needed for the Amazon Q Developer for command line to work in Jetbrains IDEs

Other folder to be aware of

  • build-scripts/ - Contains all python scripts to build,
    sign, and test the project on macOS and Linux
  • crates/ - Contains all internal rust crates
  • packages/ - Contains all internal npm packages
  • proto/ -
    protocol buffer message
    specification for inter-process communication
  • tests/ - Contain integration tests for the projects

Below is a high level architecture of how the different components of the app and
their IPC:

architecture

๐Ÿ›ก๏ธ 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.

๐Ÿ˜ Features

4

โšก๏ธ Installation

7

Prerequisites

1

  • MacOS Xcode 13 or later Brew

1. Clone repo

1

  • git clone https://github.com/aws/amazon-q-developer-cli-autocomplete.git

2. Setup

1

  • Hassle-free setup:

3. Start Local Development

1

  • To compile and view changes made to q chat :

๐Ÿ’ก Quick Tip for Onboarding

1

  • Use Q CLI to help you onboard Q CLI!

๐Ÿ—๏ธ Project Layout

11

๐Ÿ›ก๏ธ Security

1

๐Ÿ“œ Licensing

1

  • This repo is dual licensed under MIT and Apache 2.0 licenses.