Ask ChatGPT from your terminal, or let your coding agent do it,
through the ChatGPT you are already signed in to in your browser.
English • 简体中文
voyager ask "Review this design" --attach ./docs/design.mdVoyager CLI is the reference client for the ChatGPT Local Bridge in the
Voyager browser extension. The bridge lets programs on
your computer work with ChatGPT on the web: open a chat, send a prompt with files, wait for the
reply and read it, manage project files. Voyager CLI puts that in your terminal and saves each
reply as response.md. Everything stays on your machine: the CLI listens on 127.0.0.1 only,
and ChatGPT sees an ordinary chat from your own browser.
More about the bridge →
-
Install Voyager CLI (Node.js 20.3 or later):
npm install -g @voyager-crew/cli
-
Install the Voyager extension, version 2.1.0 or later (2.2.0 for
--approve-appsand for saving the files a reply offers): Chrome · Edge · Firefox. In its popup, open Plugins, turn on ChatGPT · Local Bridge and allow access to chatgpt.com. -
Pair them once:
voyager pair
Open the Voyager popup on a ChatGPT tab and enter the eight-character code it prints in the Local Bridge settings.
voyager ask "Explain this stack trace" --attach crash.log
voyager ask "Look over the repo" --attach ./src # folders go up as a zip, secrets left out
voyager ask --model high "Quick sanity check" # pro (default), extra-high, high, medium, instant
voyager ask --chat <link|id> "And the edge cases?" # follow up in a conversation
voyager ask --preset math "Prove this claim" # prepend the mathematical research opening
voyager ask --preset <file> "Review this argument" # prepend a UTF-8 text file, trimmed (up to 20,000 characters)
voyager read <link|id> # save a conversation's latest replyEvery ask uses GPT-6 Pro in chat mode unless you pick another effort, and leaves it selected.
Voyager never switches ChatGPT to Work mode. The reply lands in ~/.voyager/jobs/<id>/output/,
and --json prints its path along with the conversation link.
Files the reply offers (a CSV, a chart, a zip ChatGPT made) are saved beside it in files/,
with -2, -3… added when a name repeats; --no-files leaves them in ChatGPT. A file that
cannot be downloaded is reported without failing the command, since the reply itself was
saved: voyager read <link> tries again later.
Pro can think for hours. ask waits as long as ChatGPT is still working on the reply, and
only gives up after 20 minutes with no sign of life. To get your terminal back, submit and
collect later:
voyager ask --no-wait "…" # prints a job id
voyager job wait <id> --timeout 10m # exit 4 means still running: wait again, never resendA Pro turn that builds, runs or renders things in ChatGPT's sandbox can lose its connection
after about 80 minutes, and then delivers nothing. --timebox 70 asks it to wrap up at 70
minutes and hand over what it has, finished and unfinished work apart, in one ZIP.
A ChatGPT project keeps files that every chat in it can read, so a codebase or a paper goes up once instead of with every question.
voyager project create "Thesis"
voyager project upload "Thesis" ./thesis # replaced when it changes, skipped when it hasn't
voyager ask --project "Thesis" "Where is the argument weakest?"
voyager project files "Thesis"
voyager project remove "Thesis" old-notes.md # immediate and permanent; asks firstChatGPT's own Google Drive and GitHub apps can read your files directly, with no upload through the page. Connect them in ChatGPT first.
voyager ask --drive ./paper.pdf "Summarize the method" # puts it on Drive and links it in the prompt
voyager ask --repo owner/name "Why does CI fail?" # ChatGPT's GitHub app reads the repository--drive packs like --attach but has no 64 MiB limit (files over 20 MiB inside a folder are still left out), and uploads with rclone:
set VOYAGER_DRIVE_REMOTE (or "driveRemote" in ~/.voyager/config.json) to a folder on a Google Drive
remote, such as gdrive:Voyager, on the same Google account ChatGPT's Drive app uses. The files stay there.
--repo asks ChatGPT to commit only to a new chatgpt/* branch, so you review before merging. That is a request, not
a restriction: the app writes wherever its GitHub installation allows, without asking. If it cannot reach the
repository, voyager stops with exit code 3; add the repository at
github.com/settings/installations.
Before some app actions, such as writing a file to Drive, ChatGPT stops the reply on a card that asks
"Allow ChatGPT to use Google Drive?". voyager then stops with exit code 3 and the conversation link, where
you answer it. With Voyager 2.2.0 or later, pass --approve-apps always to have the extension click "Always allow" for you, or
--approve-apps once for "Allow once". The card can come back after "Always allow".
Claude Code, Codex and any other agent that can run shell commands can use Voyager CLI. Install the skill that teaches them how:
npx skills add voyager-crew/voyager-cliskills/voyager/SKILL.md is written for them: JSON output, what each
exit code means, how to wait for a long job without sending the prompt twice, and how to follow
up with --chat and the conversation id it got rather than --continue.
One job runs at a time, unless you turn on Run jobs in parallel in the Local bridge card of
the Voyager popup (a Voyager release later than 2.2.1) and choose there how many run at once, from
2 to 10. Then that many jobs run side by side, each in its own ChatGPT tab, so several agents can
ask at once and their replies are awaited together; typing and clicking still take turns. A job
waits for its turn as long as the other job's step may take (a large upload, up to 10 minutes),
and stops as busy (exit 5) before its own step only when that job is stuck past it. Two asks
into the same conversation, or two project changes, never run together: the later one is refused
as busy (exit 5). "maxParallelJobs": 2 in ~/.voyager/config.json keeps it to fewer jobs; each
running job is a Pro request of its own. voyager status says how many jobs may run now and which
one is acting on its page.
Every result also names your ChatGPT plan (Pro Lite ($100), Pro ($200), …) as the page last
reported it.
ask,readand everyprojectcommand open their own ChatGPT tab and close it when they end, also after a failure; pass--keep-tabto leave it open. If ChatGPT asks you to sign in or solve a challenge, Voyager CLI stops, leaves that tab open and says so (exit 3); it never works around it.voyager updateupdates everything it can: the CLI (when npm installed it globally),voyager serve(restarted unless a job is running) and the extension's page data, fetched now instead of at its next check. Your browser's store updates the extension itself.- Commands:
voyager --help. State lives in~/.voyager(or$VOYAGER_HOME), private to your user. - Tested in Chrome. Edge and Firefox builds of Voyager include the bridge too; Safari does not.
- Voyager and Voyager CLI are community open-source projects. They are not affiliated with or endorsed by OpenAI.
- The bridge automates ChatGPT on the web in your own signed-in browser. OpenAI's Terms of Use restrict extracting output by automated or programmatic means, so decide for yourself whether your use complies before you rely on it. Any limits placed on your account as a result are your own risk.
- Similar tools take the same line: oracle, for example, makes its browser mode an opt-in experimental feature and points people who want to avoid the risk to the API. If you need a supported route, use the OpenAI API.
- The bridge is for your own convenience on your own computer: connect only your own account, do not use it to serve other people, share an account or resell usage, and use it only for lawful purposes.
MIT. Development notes are in CONTRIBUTING.md.