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 developmentPerplexity.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.
- 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).
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;
- Clone this repository
pnpm clean-zip- Load the extension from the zip file in the
packagefolder.
The mozilla add-on version is available at the moz branch.
- 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 🙂)
- Issues and PRs are welcome.
- Please follow the guidelines in CONTRIBUTING.md.
- The Discord community for the constant feedbacks/suggestions and support.
- Perplexity.ai for an amazing product. (almost 😅)
- DailyFocus for the name "Complexity" and early feedbacks/testing.
- DanielLatorre for the
#72AEFDdefault accent color.
- Discord (userid:
feline9655) - [email protected]