Skip to main content

Prerequisites

  • Docker and Docker Compose
  • An LLM API key (works with OpenAI, Anthropic, OpenRouter, or any OpenAI-compatible provider)
1

Clone the repository

2

Configure environment

Edit .env and add your LLM API key:
Provider Configuration: Edit config/getprofile.json to choose your provider:
The .env.docker.example file is optimized for Docker deployment. For local development without Docker, use .env.example instead.
3

Start services

This starts:
  • GetProfile Proxy on http://localhost:3100
  • PostgreSQL database
Note: We source the .env file before starting to ensure long API keys are loaded correctly. Database migrations run automatically on first start. Monitor logs with:
4

Configure API key (optional)

If you want to protect your proxy with an API key, set it in your .env:
If not set, the proxy will accept all requests (useful for local development).
Configuration: You can configure GetProfile via config/getprofile.json or environment variables. Environment variables take precedence. See Configuration for details.
After changing .env, restart services:
5

Test the proxy

You should see:

Option 2: Local Development

1

Prerequisites

  • Node.js 20+
  • pnpm
  • PostgreSQL 15+ (pgvector enabled)
2

Clone and install

git clone https://github.com/getprofile/getprofile.git && cd
Edit .env with your DATABASE_URL and LLM_API_KEY:
Optional: Set GETPROFILE_API_KEY to require authentication on the proxy.
Other settings like rate limiting, message retention, and provider configuration are now in config/getprofile.json. See Configuration.
3

Run migrations

bash pnpm db:migrate
4

(Optional) Load sample data

bash pnpm db:seed:sample Seeds a demo profile for smoke-testing the dashboard and API.
5

Configure API key (optional)

If you want to protect your proxy with an API key, set it in your .env: bash GETPROFILE_API_KEY=your-secret-key-here If not set, the proxy will accept all requests (useful for local development).
6

Start development server

Using the Proxy

Once running, update your OpenAI client to use GetProfile. Works with any LLM provider:
Headers: Provider headers (X-Upstream-Provider, X-Upstream-Key) override the config file. If not provided, GetProfile uses the default provider configured in config/getprofile.json.

Customizing Extraction

GetProfile includes default trait schemas and prompts in the config/ directory:

Customizing Traits

Edit config/traits/default.traits.json to define what GetProfile extracts from conversations:

Customizing Prompts

Edit the markdown files in config/prompts/ to change how GetProfile:
  • Extracts memories from conversations (extraction.md)
  • Generates profile summaries (summarization.md)
  • Identifies trait values (trait-extraction.md)
For Docker: After modifying config files, rebuild and restart:

Next Steps

How It Works

Understand the architecture

Integration Options

Compare proxy vs SDK

Configure Traits

Customize what GetProfile extracts

JavaScript SDK

Programmatic access from Node.js/TypeScript