> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aventure.vc/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aventure.vc/_mcp/server.

# CLI Quickstart

The `aventure` CLI finds companies and people by name, website, or description,
and reads their funding, founders, investors, and news. You need an
[aVenture account](https://aventure.vc/sign-up); free and paid plans both work.
Working in Claude, ChatGPT, or another AI app instead? Use the
[MCP server](/mcp).

## Get Started in One Step

Paste this into Claude Code, Codex, ChatGPT, or any assistant that can run
terminal commands:

```text
Set up the aVenture CLI for me. It needs Node.js 24.18.0 or later.
1. Install it: npm install --global @aventurevc/aventure-cli
2. Run `aventure auth login` so I can approve the sign-in in my browser.
   In a headless environment use `aventure auth login --no-browser`.
   If it returns a device approval link and code, show them to me.
   If device approval is unavailable, report the error and offer the
   documented `aventure auth login --key --no-browser` fallback.
3. When I'm signed in, confirm it works:
   aventure entities lookup-exact get --url https://stripe.com
Use `aventure --help` to find other commands.
Docs: https://docs.aventure.vc/cli
```

## Set Up by Hand

#### Install

```bash
npm install --global @aventurevc/aventure-cli
```

The CLI requires Node.js 24.18.0 or later.

If a global install fails with `EACCES`, use a writable user prefix and add
its executable directory to your shell's path:

```bash
npm install --global --prefix "$HOME/.local" @aventurevc/aventure-cli
export PATH="$HOME/.local/bin:$PATH"
```

Keep that `PATH` setting in your shell configuration if you want it in later
terminal sessions.

#### Sign In

```bash
aventure auth login
```

The command opens your browser to sign in and waits while you approve. Without
a browser, such as over SSH or in a container, it prints a sign-in URL and a
one-time code to approve on any device; `--no-browser` forces that mode. For CI, set `AUTH_TOKEN` to an
[API key](/authentication#create-an-api-key) instead.

#### Find a Company

```bash
aventure entities lookup-exact get --url https://stripe.com
```

The answer is the company's profile; `core.id` is the `id` the commands below take.
With `--json`, it is at `data.response.core.id`. Check `truncated` before using
embedded funding, people, or news lists as complete; use the paginated reads
below to recover the sections you need.
This works on every plan.

## Find a Company

> **Note**
>
> `lookup` and `search` need a paid plan (AI Plus or AI Pro). On the free plan,
> use a website with `aventure entities lookup-exact get --url https://stripe.com`
> or a keyword with `aventure entities search --text-search Stripe`.

| You have                            | Command                                                                                                    |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| A name                              | `aventure lookup --kind ENTITY --name Stripe`                                                              |
| A name that several companies share | `aventure lookup --kind ENTITY --name Mercury --context "banking for startups" --location "San Francisco"` |
| A website                           | `aventure lookup --name Stripe --url https://stripe.com`                                                   |
| A description                       | `aventure search natural entities --query "seed-stage climate software companies in Austin" --size 5`      |

## Find a Person

| You have           | Command                                                                                              |
| ------------------ | ---------------------------------------------------------------------------------------------------- |
| A name             | `aventure lookup --kind PERSON --name "Patrick Collison" --context "Stripe co-founder"`              |
| A LinkedIn profile | `aventure people lookup-exact get --url https://www.linkedin.com/in/patrickcollison`                 |
| A description      | `aventure search natural people --query "fintech founders who previously worked at PayPal" --size 5` |

[Identify a company or person](/lookup) explains each lookup answer.

## Go Deeper on a Record

```bash
aventure entities get --entity-id <id>
aventure entities fundraise-rounds list --entity-id <id>
aventure entities people list --entity-id <id>
aventure people get --person-id <id>
```

Filter the company list with flags such as `--stage`, `--headquarters-city`,
and `--industry`:

```bash
aventure entities list --type-record Company --stage Seed --headquarters-city Austin --size 5
```

Run `aventure entities --help` or `aventure people --help` for every command.

## Plans and Usage

Calls draw on your plan's monthly allowances. When one runs out, the command
stops with a message that names the limit and how to upgrade.

```bash
aventure billing subscription get   # your plan and usage
aventure billing plans list         # plans with monthly and annual prices
```

[Plans and usage](/plans-and-usage#when-you-reach-a-limit) covers upgrading.

## Output and Exit Codes

* `--text` is the default in a terminal: a table for a list and labeled fields for one record.
* `--data` prints the response as JSON. It is the default when output is piped.
* `--json` prints the full result envelope, capped at 50 KB.
* `--data-full` prints uncapped JSON for bounded programs; never use it in an LLM agent.
* `--all-fields` adds the detail fields that `--text` hides.

Exit code `0` means the call succeeded and `1` means it failed, so a script can
branch on the exit code without parsing output. With `--json`, check `ok` before
reading `data.response`.

`--data` also has a 50 KB limit and can return a truncation envelope instead
of the plain body. For automated research, use `--json` to keep `ok`, warnings,
continuation tokens, and truncation metadata in a consistent shape. A
successful exit code proves the operation worked, not that every nested
section is complete. Follow [result recovery](/mcp-tools#read-the-result-before-continuing).

## Find the Right Command

```bash
aventure command-catalog search funding rounds --format compact
aventure help getEntity
aventure help "GET /v1/entities/lookup-exact"
```

`aventure help` accepts an [API reference](/api-reference) `operationId`, a
command path, or a `METHOD /path` selector, and prints the flags the command
needs. For a body-based universal lookup, the generated command is
`aventure lookup-from-file`; `aventure lookup` is the query-based read.

## Check Your Setup

* `aventure auth doctor` checks the CLI version, API connection, and sign-in,
  and names the fix for each problem.
* `aventure auth status` shows which credential is in use.
* `aventure auth logout` signs you out.

## Next Steps

* [Answer a real question](/first-answer) chains these commands into one result.
* [Use cases and examples](/use-cases) has a command recipe for each common job.
* [MCP quickstart](/mcp) puts the same data inside an AI client.
* The CLI is published as [`@aventurevc/aventure-cli`](https://www.npmjs.com/package/@aventurevc/aventure-cli), with [source on GitHub](https://github.com/aventurevc/aventure-cli).