Thanks to visit codestin.com
Credit goes to github.com

Skip to content

cw-cdz/complexity

 
 

Repository files navigation

Complexity

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

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

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.

Complexity is packed with features

  • Various UI/UX/QoL tweaks.
  • LLM/Image gen model selectors; directly chat to a collection; export your searches/conversations, etc.
  • Highly customizable ADHD-friendly theme (custom css is supported).
  • A dedicated solution for prompts management: Prompts Library (in development).

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["Intercept native APIs"]
        WI["Singleton Instance (Main-world)"]
        WI --> |Initializes| PWS[Proxy WebSocket]
        WI --> |Initializes| PXHR[Proxy XMLHttpRequest]
        WI --> AM[Active Connection Manager]
        WI --> ML[Message Listener]
    end

    subgraph Interceptors
        WM["Controller (Isolated)"]
        WM --> MP[Message Processor]
        WM --> IC[Interceptor Chain]
        WM --> EL[Event Listeners]
    end

    WI <-. "window.postMessage" .-> WM

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

    PWS --> |Intercepts| AM
    PXHR --> |Intercepts| AM

    AM --> |Notifies| ML
    ML --> |Sends Messages to| WM

    CS <--> |Communicates| WM
    BP <--> |Communicates| WM

    WM --> |Processes Messages| MP
    MP --> |Applies Interceptors| IC
    IC --> |Modifies Data| MP

    MP --> |Sends Modified Data| AM
    AM --> |Sends to Webpage| W

    WM --> |Registers| EL
    EL --> |Triggers Events| 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 clean-zip
  3. Load the extension from the zip file in the package folder.

The mozilla add-on version is available at the moz branch.

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 agressive Cloudflare protection of the host page itself (I'm still figuring out a way 🙂)

Contributing

  • Issues and PRs are welcome.
  • Please follow the guidelines in CONTRIBUTING.md.

Acknowledgements

Reaching out 👋

Support the development 💖

About

⚡ Supercharge your Perplexity.ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.2%
  • CSS 3.2%
  • JavaScript 1.5%
  • HTML 0.1%