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, and they implicitly refuse to improve on those areas by cutting almost all communication on their discord server. 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
package
folder.
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
#72AEFD
default accent color.
- Discord (userid:
feline9655
) - pnd280@gmail.com