Product
VS Code extension (perplexity-vscode)
Version
1
MCP Client (if applicable)
None
Perplexity tier
None
OS
Mac
Browser used by the MCP server
No response
What happened?
The upstream/general bugs we found, separate from the repo-trimming work, are:
-
CLI silently exits when launched through a symlink
The direct-run guard used:
import.meta.url === pathToFileURL(process.argv[1]).href
That fails when process.argv[1] is a symlink, because import.meta.url resolves to the real built file. Result: routeCommand() never runs and commands exit 0 with no output.
Upstream fix: compare realpathSync(fileURLToPath(import.meta.url)) to realpathSync(process.argv[1]).
-
Built dist/cli.mjs needs a real executable shebang
The npm bin points at ./dist/cli.mjs. Without:
and executable mode, global installs or raw symlinked bins can fail or behave weirdly on macOS/Homebrew setups.
Upstream fix: keep shebang in source or add it as part of build, and chmod the built CLI.
-
Repeated macOS Keychain prompts
The doctor/status/login paths can touch vault/keychain repeatedly, causing the user to be prompted many times. That is a real UX bug, not trim-specific.
Upstream fix: cache keychain probe results per process, avoid repeated keytar.getPassword() calls in diagnostics, and add a supported escape hatch like PERPLEXITY_DISABLE_KEYCHAIN=1 for tests/headless diagnostics.
-
Manual login browser session was not persistent enough
The login flow opened Chrome but did not preserve Google SSO state reliably between attempts. If the Perplexity login depends on Google, users can get confused because the launched Chrome is not their normal Chrome profile.
Upstream fix: use a dedicated persistent browser profile for MCP login, document where it lives, and clear stale Chrome singleton lock files before launch.
-
Image payload rejection recovery in Hermes, adjacent but not this repo
This one is not a Perplexity MCP bug directly, but it affected debugging: Hermes sent image_url blocks to a text-only DeepSeek endpoint and did not recognize the provider’s error wording.
Doctor output (optional, recommended)
Relevant logs or errors
Product
VS Code extension (perplexity-vscode)
Version
1
MCP Client (if applicable)
None
Perplexity tier
None
OS
Mac
Browser used by the MCP server
No response
What happened?
The upstream/general bugs we found, separate from the repo-trimming work, are:
CLI silently exits when launched through a symlink
The direct-run guard used:
That fails when
process.argv[1]is a symlink, becauseimport.meta.urlresolves to the real built file. Result:routeCommand()never runs and commands exit0with no output.Upstream fix: compare
realpathSync(fileURLToPath(import.meta.url))torealpathSync(process.argv[1]).Built
dist/cli.mjsneeds a real executable shebangThe npm
binpoints at./dist/cli.mjs. Without:#!/usr/bin/env nodeand executable mode, global installs or raw symlinked bins can fail or behave weirdly on macOS/Homebrew setups.
Upstream fix: keep shebang in source or add it as part of build, and chmod the built CLI.
Repeated macOS Keychain prompts
The doctor/status/login paths can touch vault/keychain repeatedly, causing the user to be prompted many times. That is a real UX bug, not trim-specific.
Upstream fix: cache keychain probe results per process, avoid repeated
keytar.getPassword()calls in diagnostics, and add a supported escape hatch likePERPLEXITY_DISABLE_KEYCHAIN=1for tests/headless diagnostics.Manual login browser session was not persistent enough
The login flow opened Chrome but did not preserve Google SSO state reliably between attempts. If the Perplexity login depends on Google, users can get confused because the launched Chrome is not their normal Chrome profile.
Upstream fix: use a dedicated persistent browser profile for MCP login, document where it lives, and clear stale Chrome singleton lock files before launch.
Image payload rejection recovery in Hermes, adjacent but not this repo
This one is not a Perplexity MCP bug directly, but it affected debugging: Hermes sent
image_urlblocks to a text-only DeepSeek endpoint and did not recognize the provider’s error wording.Doctor output (optional, recommended)
Relevant logs or errors