zed/extensions/perplexity
Mikayla Maki 9613084f59
Some checks are pending
CI / check_docs_only (push) Waiting to run
CI / Check Postgres and Protobuf migrations, mergability (push) Waiting to run
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Build Remote Server (push) Blocked by required conditions
CI / (Windows) Run Clippy and tests (push) Blocked by required conditions
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
CI / Auto release preview (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Docs / Check formatting (push) Waiting to run
Script / ShellCheck Scripts (push) Waiting to run
Move git status out of Entry (#22224)
- [x] Rewrite worktree git handling
- [x] Fix tests
- [x] Fix `test_propagate_statuses_for_repos_under_project`
- [x] Replace `WorkDirectoryEntry` with `WorkDirectory` in
`RepositoryEntry`
- [x] Add a worktree event for capturing git status changes
- [x] Confirm that the local repositories are correctly updating the new
WorkDirectory field
- [x] Implement the git statuses query as a join when pulling entries
out of worktree
- [x] Use this new join to implement the project panel and outline
panel.
- [x] Synchronize git statuses over the wire for collab and remote dev
(use the existing `worktree_repository_statuses` table, adjust as
needed)
- [x] Only send changed statuses to collab

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.com>
Co-authored-by: Nathan <nathan@zed.dev>
2025-01-04 01:00:16 +00:00
..
src Add a /perplexity slash command in an extension (#16438) 2024-08-18 16:34:55 -06:00
Cargo.toml Add a /perplexity slash command in an extension (#16438) 2024-08-18 16:34:55 -06:00
extension.toml Fix Perplexity extension URL (#21495) 2024-12-03 18:28:59 -05:00
LICENSE-APACHE Add a /perplexity slash command in an extension (#16438) 2024-08-18 16:34:55 -06:00
README.md Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00

Zed Perplexity Extension

This example extension adds the /perplexity slash command to the Zed AI assistant.

Usage

Open the AI Assistant panel (cmd-r or ctrl-r) and enter:

/perplexity What's the weather in Boulder, CO tomorrow evening?

Development Setup

  1. Install the Rust toolchain and clone the zed repo:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
    mkdir -p ~/code
    cd ~/code
    git clone https://github.com/zed-industries/zed
    
  2. Open Zed

  3. Open Zed Extensions (cmd-shift-x / ctrl-shift-x)

  4. Click "Install Dev Extension"

  5. Navigate to the "extensions/perplexity" folder inside the zed git repo.

  6. Ensure your PERPLEXITY_API_KEY environment variable is set (instructions below)

    env | grep PERPLEXITY_API_KEY
    
  7. Quit and relaunch Zed

PERPLEXITY_API_KEY

This extension requires a Perplexity API key to be available via the PERPLEXITY_API_KEY environment variable.

To obtain a Perplexity.ai API token, login to your Perplexity.ai account and go Settings->API and under "API Keys" click "Generate". This will require you to have Perplexity Pro or to buy API credits. By default the extension uses llama-3.1-sonar-small-128k-online, currently cheapest model available which is roughly half a penny per request + a penny per 50,000 tokens. So most requests will cost less than $0.01 USD.

Take your API key and add it to your environment by adding export PERPLEXITY_API_KEY="pplx-0123456789abcdef..." to your ~/.zshrc or ~/.bashrc. Reload close and reopen your terminal session. Check with env |grep PERPLEXITY_API_KEY.