DUIP (Discover User Internet Profile) is a powerful and efficient tool designed to simplify the process of finding information about individuals across various platforms. Whether you're looking for colleagues, professionals, or friends, DUIP provides a seamless experience to discover and connect with people.
Everything runs locally: searches go through a headless browser on your own machine, and summaries are written by a local GGUF language model.
- Next.js 16 (App Router, Turbopack) with React 19
- Tailwind CSS v4 with a CSS-first design token system in
styles/globals.css - shadcn/ui components in
components/ui/ - Puppeteer (with the stealth plugin) for search and page crawling
- node-llama-cpp for on-device summarisation
Requires Node.js 20.9 or newer.
1. Clone the Repository:
git clone https://github.com/nirajgiriXD/duip.git2. Navigate to the Project Directory:
cd duip3. Install Dependencies:
npm install4. Configure the Environment:
Copy .env.sample to .env and adjust it:
| Variable | Description |
|---|---|
LLAMA_MODEL_NAME |
File name of the GGUF model placed inside models/. |
PROXY_SERVER |
Optional proxy for the headless browser. |
HEADLESS |
true (default), false to watch the browser, or shell. |
5. Run the Application:
npm run dev6. Access the DUIP Interface:
Open a web browser and navigate to http://localhost:3000 to access the DUIP interface.
DUIP walks through four steps, shown as a progress stepper in the UI:
- Search — enter whatever identity details you know and pick a run mode. Automatic runs the whole pipeline in one go; Manual lets you curate the results at each stage.
- Profiles — review the public results, select the ones worth reading, keep useful ones across searches, or add a page the search missed.
- Content — the readable text pulled from every selected profile. In manual mode this is editable, so the model sees exactly what you approve.
- Summary — the analysis, written from the perspective of the chosen lens (Researcher, Investor, HR or Matchmaker).
Your session (search details, profiles, content and summary) is kept in the browser's local storage and can be cleared with the reset action in the header.
| Command | Description |
|---|---|
npm run dev |
Start the development server. |
npm run build |
Create a production build. |
npm start |
Serve the production build. |
npm run lint |
Run ESLint. |