UNPKG

context7

Version:

CLI to query the Context7 API

154 lines (101 loc) 4.69 kB
# Context7 CLI (`c7`) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) A simple and convenient command-line interface (CLI) for interacting with the [Context7 API](https://context7.com/). Quickly search for projects, get information about them, and query specific topics within a project's context, all directly from your terminal. Provides the `c7` command. ⚠️ **Important:** All data provided by this tool comes directly from the official **Context7 API** (`https://context7.com`). This tool is simply a convenient wrapper and does not generate or host any content itself. ## Features * **Query:** Ask questions or request information on specific topics within a project's documentation context. * **Search:** Discover available projects indexed by Context7 based on keywords. * **Info:** Get metadata about a specific project (like its source repository, last update time, etc.). * **Flexible Output:** Get query results in plain text (`txt`, default) or structured `json`. * **Save Results:** Easily save query output directly to a file (`llms_{project}.{format}`). * **User-Friendly:** Uses spinners for feedback during API calls and colored output for readability. ## Installation ### Prerequisites * [Node.js](https://nodejs.org/) (Version 18+ recommended for native `fetch`, but should work with v16+ if needed) * [npm](https://www.npmjs.com/) (usually comes with Node.js) or [Bun](https://bun.sh/) ## Install ```bash npm install -g context7 yarn i -g context7 bun i -g context7 ``` ## Usage The basic command structure is: ```bash c7 [command] [arguments...] [options...] ``` ### Commands #### 1. Query (Default Command) Fetches information about a specific topic within a project. This is the default command if no other command (`search`, `info`) is specified. **Syntax:** ```bash c7 <projectname> <query...> [options] ``` **Arguments:** * `<projectname>`: The exact name of the project (e.g., `nextjs`, `react`, `uv`). Use `c7 search <term>` to find valid names. (Required) * `<query...>`: The topic, question, or keywords to query within the project's context. (Required) **Options:** * `--type`, `-t`: Specify the output format. * `txt` (Default) * `json` * `--save`, `-s`: Save the output to a file named `llms_{projectname}.{format}` in the current directory instead of printing to the console. (Boolean flag) * `--tokens`, `-k`: Specify the maximum number of tokens for the API response. (e.g., `--tokens 1000`). The API default is used if omitted. (Number) **Examples:** ```bash # Get info about data fetching in Next.js (default TXT output) c7 nextjs data fetching strategies # Get info about state management in React, output as JSON c7 react state management -t json # Search for info on installation in the 'uv' project and save to llms_uv.txt c7 uv installation steps --save # Query Node.js streams and save the result as llms_nodejs.json c7 nodejs streams api -t json -s # Query Next.js data fetching and use only 1000 tokens c7 nextjs data fetching -k 1000 ``` #### 2. Search Searches for available Context7 projects based on a keyword in their title. It filters out projects whose internal path contains a `/`, as these are often duplicates or not directly queryable via this tool. **Syntax:** ```bash c7 search <term> ``` **Arguments:** * `<term>`: The keyword to search for in project titles (e.g., `react`, `python`, `aws`). (Required) **Example:** ```bash c7 search next # Output might look like: # --- Search Results (Use "Project Name" for queries) --- # - Next.js (Project Name: nextjs) # ------------------------------------------------------- # Example query: c7 nextjs <your query> ``` #### 3. Info Displays metadata associated with a specific project. **Syntax:** ```bash c7 info <projectname> ``` **Arguments:** * `<projectname>`: The exact project name (e.g., `nextjs`, `react`). Use the name shown in parentheses from the `search` command results. (Required) **Example:** ```bash c7 info react # Output will show details like Title, Project Name, Docs Source, Last Update, etc. ``` ### Getting Help You can always get help on commands and options: ```bash c7 --help # General help for all commands c7 query --help # Help specifically for the query command (same as default) c7 search --help # Help for the search command c7 info --help # Help for the info command ``` ## Development 1. Clone the repository. 2. Install dependencies (`npm install` or `bun install`). 3. Link for local testing (`npm link` or `bun link`). 4. Make your changes! ## License [MIT](LICENSE)