Monorepo containing multiple applications spanning desktop, web, mobile, and browser extensions.
- Language: Go
- Go version: >=1.24.1
- Description: Desktop agent that collects system and user activity, persists data to a local SQLite database, and sends it to the ingestion backend.
- Structure:
agent/
├── cmd # Main entry points
└── internal # Core libraries and business logic
- Language: TypeScript (NestJS)
- Description: API backend for data ingestion, processing, and management. Exposes REST endpoints for agents, web apps, and extensions.
- Structure:
backend/
├── node_modules
└── packages # Shared modules or internal packages
- Language: TypeScript (Electron/React)
- Description: Cross-platform desktop application interface for the agent and backend.
- Structure:
desktop/
└── src # Main source code for the desktop app
- Language: TypeScript (React Native / Expo)
- Description: Mobile app client for viewing and interacting with agent-collected data.
- Structure:
native/
├── app # Core application logic
├── assets # Images, fonts, and other static resources
├── components # UI components
├── constants # Shared constants
├── hooks # Custom React hooks
├── node_modules
└── scripts # Build and utility scripts
- Language: TypeScript (Next.js / React)
- Description: Web application frontend for interacting with the backend APIs.
- Structure:
web/
├── node_modules
├── public # Static files
└── src # Source code
- Language: JavaScript/TypeScript
- Description: Browser extension supporting Firefox and Chrome for activity tracking and integration with the backend.
- Structure:
webextension/
└── firefox # Firefox-specific extension code
- Go >= 1.24.1 (for
agent) - Node.js >= 20, npm >= 9 (for
backend,web,desktop,native) - Yarn or npm for package management
docker(optional, for backend services)
cd apps/agent
go build -o ./bin/p1-agent ./cmd/agent
./bin/p1-agent --account-id=<ACCOUNT_ID>cd apps/backend
npm install
cd apps/backend/packages/core
npm install
docker compose up db cache -d
npm run start:devcd apps/web
npm install
npm run devcd apps/native
npm install
npm run startcd apps/webextension
npm run build:firefox
npm run build:chrome- Load
webextension/firefoxas a temporary add-on in Firefox. - Chrome version available in
webextension/chrome.
- Agent data is stored in platform-standard locations (
~/.local/share/p1on Linux,%APPDATA%\p1on Windows,~/Library/Application Support/p1on macOS). - Process naming: agent binary should be named
p1-agentfor consistency in process monitors.
apps/
├── agent
├── backend
├── desktop
├── native
├── web
└── webextension
Once the infrastructure is provisioned and webextension installed, visit http://localhost:8080/register and register with an email address and password.
Once authenticated, visit http://localhost:8080/account and grab your account-id, we'll use this to configure your agent properly.
Log in to the webextension with the credentials you used to register with.
Run the desktop extension via ./bin/p1-agent --account-id <YOUR ACCOUNT ID>
You will then be able to see:
- Automatic App discovery and AI enrichment via http://localhost:8080/apps
-
-
- Automatic Device discovery via http://localhost:8080/devices
- Extension and Agent sourced activities via http://localhost:8080/dashboard
Devices ingested from the source agent will be in an anonymous state until a device is claimed.
A device can be claimed by making an authenticated PATCH request for the given device id with the payload {"userId":"<YOUR USER ID>"}by visiting http://localhost:3000/api/#/Device
You can generate a token by logging in via http://localhost:3000/api/#/Auth/AuthController_login_v1 and logging in with the credentials you used to register with.
file:///home/brandon/Pictures/Screenshots/Screenshot%20From%202025-10-01%2001-03-01.png
Once claimed, activities from the agent with this device will be associated to the given user.