Skip to content

pnd280/complexity

Repository files navigation

Complexity

An enhanced version of Perplexity.ai which everyone has ever wanted.
Community-driven, open-source, and free to use.

Stable version Alpha version Discord
Chrome Web Store Rating Chrome Web Store Users Mozilla Add-on Rating Mozilla Add-on Users

Complexity is a third-party extension, it does NOT affiliate with Perplexity.ai.

💖 support the development

Paypal Ko-fi

Perplexity.ai is famously known for its LLM-based search engine, but many may not know that it is also a decent portal which provides access to various SOTA LLMs and image generation models and have somewhat a very generous rate limit compared to other services. But it lacks a lot of basic features, the UX isn't that great either. Hence, Complexity was created to fill that gap.

Note

Complexity is going freemium! Read more.

Complexity will enrich your experience with:

  • LLM/Image gen model selectors.
  • Directly chat to a Space (previously known as Collection) on the home page.
  • Export your searches/conversations.
  • Highly customizable ADHD-friendly theme (custom css is supported).
  • Various UI/UX/QoL tweaks.
  • A dedicated solution for prompts management: Prompts Library (in development).
  • And many more...

Read more

How does it work?

This is a high-level overview of the network traffic interception approach, which provides the extension with the ability to alter the behavior of the host page.

graph TD
    subgraph Browser
        W[perplexity.ai]
        CS[Content Scripts]
        BP[Background Page]
    end

    subgraph InterceptAPIs
        WI[Interceptor Instance]
        WI --> PWS[Proxy WebSocket]
        WI --> PXHR[Proxy XMLHttpRequest]
    end

    subgraph Interceptors
        WM[Controller]
        WM --> MP[Message Processor]
        WM --> IC[Interceptor Chain]
    end

    W <--> |WebSocket/XHR| PWS
    W <--> |WebSocket/XHR| PXHR

    WI <-.-> WM

    CS <--> WM
    BP <--> WM

    MP --> IC
    IC --> MP

    classDef singleton fill:#72aefd,stroke:#333,color:#ffffff,stroke-width:2px;
    class WI,WM singleton;
Loading

Read more

Installation

Build from source

  1. Clone this repository.
  2. pnpm build or pnpm build:firefox.
  3. Load the extension from the dist folder.

Limitations

  • Because of frequent/unexpected changes in the host page, UI tweaks are prone to breakage and it will take some time for the review process to be passed.
  • The dev runtime/overall DX on mozilla-based browsers is non-existent due to a non-compatible dev dependency @crxjs/vite-plugin.
  • Limited testing: the e2e test suite has not been implemented due to the aggressive Cloudflare protection of the host page itself (I'm still figuring out a way 🙂)

Contributing

Note

The project is undergoing significant refactoring, thus PRs are not welcome at the moment.

Acknowledgements

Reaching out 👋

Support the development 💖