Quickstart
Your team's AI brain — shared knowledge graph, coding agent intelligence, and PM skills in one place.
Individual Setup
Get Evols running for yourself in under 2 minutes. Start building your personal knowledge base and wiring it into your coding agents — your teammates can join later.
Create your account
Register at /register. Your account creates an isolated workspace — all your knowledge, skills, and AI config live here.
Configure your LLM provider
Evols requires your own LLM API key (BYOK). Go to Settings → LLM Settings and connect a provider.
After saving, click Test Connection to confirm the key and model are reachable.
Add knowledge sources
Go to Knowledge and upload your first documents — meeting notes, product briefs, customer research, or any text, PDF, or Markdown file. Evols runs LightRAG entity extraction in the background and builds your knowledge graph automatically.
What gets extracted:
Install the Evols CLI and wire your coding agents
The Evols CLI wires a global MCP server and process-level hooks into every coding agent on your machine. Claude Code, Cursor, Zed, Codex, Antigravity, Cline, and GitHub Copilot are detected and configured automatically.
macOS / Linux
# Install the CLI
curl -fsSL https://api.evols.ai/api/v1/install/script | sh
# Log in with your API key (Settings → Security → New Key)
evols login
# Wire up all detected coding agents
evols installWindows
# Install the CLI (PowerShell — run as Administrator)
irm https://api.evols.ai/api/v1/install/script.ps1 | iex
# Log in with your API key
evols login
# Wire up all detected coding agents
evols installThen initialise Evols in any project repo:
cd ~/your-project
evols initevols install to pick up the new MCP server and hooks.Open the Workbench and start using skills
Go to Workbench in the app. It's a conversational AI chat pre-loaded with 80+ PM and engineering skills — product strategy, PRD writing, competitive analysis, sprint planning, and more.
Try a few prompts to see your knowledge in action:
AI Workbench
The Workbench is a conversational AI interface pre-configured for team collaboration and coordination work. It connects to your uploaded knowledge (via LightRAG), your Work Context, and optionally the web (via Tavily/Serper) to produce responses grounded in your actual product situation.
Responses use your uploaded documents and extracted entities from the Knowledge Graph
Real-time web search via Tavily or Serper for competitive research and market data
Pre-built skills for strategy, execution, discovery, and communication
Conversation history is preserved — pick up where you left off
Skills Library
Skills are selected from the sidebar or via the skills menu in the chat. Each skill loads a focused PM prompt context.
Strategy
Discovery
Execution
Communication
Analysis
Internet Search
When internet search is enabled (configure a Tavily or Serper API key in Settings), the AI can pull real-time information for:
- Competitor feature research
- Market sizing and trends
- Industry benchmarks
- Recent product announcements
Internet search is triggered automatically when the AI determines external data would improve the response.
Knowledge Integration
The Workbench uses your team's knowledge context automatically. When you ask a question, it retrieves relevant content from your uploaded sources and the Knowledge Graph using hybrid RAG (local + global search modes).
To ensure good grounding: add sources via the Knowledge page, then use the Sync Data button on the Knowledge Graph tab to populate the LightRAG index. The Workbench will then cite from those sources.
Tips
- Be specific: “Write a PRD for mobile offline sync targeting Enterprise customers in Q3” beats “write a PRD”
- Use constraints: Include team size, timeline, and tech constraints for more realistic outputs
- Reference personas: Ask the AI to frame recommendations from the perspective of a specific persona — they're extracted automatically from your knowledge sources
- Iterate: Skills work best as a starting point — refine the output in follow-up messages
Work Context
Your Personal Work Hub
Work Context is a structured view of your role, current projects, tasks, and team. It surfaces what matters most so the AI can ground its responses in your actual situation.
- •Role and capacity: define your title, team, reporting structure, and weekly bandwidth
- •Project tracking: status, stakeholders, goals, and key milestones
- •Task board with priority tiers: Critical, High Leverage, Stakeholder, Sweep, Backlog
- •AI surfaces Work Context automatically when generating recommendations in Workbench
Knowledge & Knowledge Graph
Document Intelligence
Upload documents, meeting notes, PDFs, or plain text. Evols extracts entities and relationships using LightRAG and builds a queryable knowledge graph.
- •Supported sources: PDFs, plain text, meeting transcripts, CSV, Markdown
- •LightRAG extracts entities: personas, features, pain points, competitors, decisions, and more
- •Confidence scoring per entity based on source count, relationship density, and description richness
- •Semantic search and graph query via the Query panel in the Knowledge Graph tab
Knowledge Graph
Explore extracted entities and their relationships in an interactive graph. Filter by entity type, inspect confidence breakdowns, edit or merge nodes.
- •Entity List and Graph views — filter by type: persona, pain point, feature, competitor, and more
- •Edit entity name, type, and description directly from either view
- •Merge duplicate entities — relationships are transferred automatically
- •Ask the graph natural language questions using hybrid RAG mode
- •Personas appear as persona-type entities — automatically extracted, no manual management needed
Entity Attributes
Each extracted entity is tagged with three signal attributes — sentiment, urgency, and business impact — inferred from the source text.
| Entity type | Sentiment | Urgency | Business impact |
|---|---|---|---|
| PainPoint / FeatureRequest | User/customer sentiment toward the problem or request | How soon this needs to be addressed | Consequence to retention or revenue if left unresolved |
| Decision | Team confidence or controversy around the decision | Time pressure that drove the decision | Strategic weight of the outcome |
| Person | Tone used to describe this person in the source | How soon they need follow-up or attention | Organisational influence or seniority |
| Persona | Emotional state or frustration level of the segment | How urgently the segment needs a solution | Revenue or growth potential of the segment |
| Product / Feature | Market or user perception | Urgency to ship, fix, or deprecate | Revenue or adoption impact |
| Technology | Team attitude toward the technology | Urgency to adopt, replace, or upgrade | How critical it is to current operations |
| Competitor | Sentiment toward this competitor in the source | How imminently they threaten a deal or roadmap item | Competitive threat level to the business |
| Organization | Relationship tone (partner, customer, risk) | Urgency of any pending action with this org | Commercial or strategic importance |
| Meeting | Overall tone of the discussion | How time-sensitive the outcomes are | Significance of the decisions made |
Values are inferred by the LLM from source text and should be treated as directional signals, not precise measurements.
Integrations
Connect Slack, Outlook, Teams, Notion, Salesforce, Zendesk, and GitHub to pull live data into the knowledge graph. Each team member connects their own account — data is synced every 5 minutes and entities are extracted automatically.
Where to Find Integrations
Integrations live inside the Context page — the same place you upload documents, PDFs, and meeting notes.
- 1
Open Context
Click Context in the left sidebar (the database icon). This opens the unified source management panel. - 2
Switch to the Integrations tab
At the top of the panel, click the Integrations tab. You will see Connected sources (active) and Available sources (not yet connected). - 3
Pick a source and connect
Click Connect on any available source card. The card expands to show auth instructions specific to that source.
How to Connect a Source
OAuth sources (Slack, Outlook, Teams, Notion, Salesforce)
- 1
Click Connect on the source card
A popup window opens taking you to the provider's login page. - 2
Authorise the Evols application
Sign in with the account you use for that service. Evols requests read-only access only. - 3
Window closes automatically
After approval the popup closes and the source card shows a green Connected status. The first sync starts within 5 minutes.
Token-based sources (Zendesk, GitHub)
- 1
Click Connect on the source card
The card expands to show a token input field. - 2
Generate an API token in the provider's settings
Zendesk: Profile → Security → API Tokens → Add Token. GitHub: Settings → Developer Settings → Personal Access Tokens → Fine-grained token. Scope to the specific repositories you want Evols to read. - 3
Paste the token and save
Enter the token and any required config (e.g. Zendesk subdomain, GitHub repo slug), then click Save.
Source Reference
SlackOAuth 2.0 (Bot token)
OAuth Scopes
Config Fields
Channel IDs to watch (leave empty = all public channels)
Sync Frequency
Every 5 minutes
Identity Signal
Slack user ID linked to email for cross-source identity resolution
Data Fetched
Public and private channel messages, threads, and reactions you have access to
Note
Requires workspace admin to install the Slack app. Direct messages are never fetched.
Outlook / Office 365Microsoft OAuth (delegated, per-user)
OAuth Scopes
Config Fields
None — fetches your own inbox and calendar
Sync Frequency
Every 5 minutes via Microsoft Graph delta API
Identity Signal
Microsoft account UPN linked to Evols user
Data Fetched
Email subjects, senders, bodies (truncated at 4 KB), and calendar event titles
Note
Only your own mailbox and calendar — no tenant-wide access. Uses incremental delta tokens to avoid re-fetching old mail.
Microsoft TeamsMicrosoft OAuth (delegated, per-user)
OAuth Scopes
Config Fields
None — fetches channels and chats you are a member of
Sync Frequency
Every 5 minutes via Microsoft Graph
Identity Signal
Microsoft account UPN linked to Evols user
Data Fetched
Channel messages and replies you have access to; direct chat messages
Note
Requires Microsoft to grant ChannelMessage.Read.All for your tenant — some IT admins restrict this scope.
NotionNotion OAuth (per-user integration)
OAuth Scopes
Config Fields
None — fetches all pages and databases shared with the Notion integration
Sync Frequency
Every 5 minutes
Identity Signal
Notion workspace ID linked to Evols user
Data Fetched
Page titles, block text, and database rows from pages you share with the integration
Note
You control which pages are shared — open the Notion page menu and click "Connect to Evols" to grant access.
SalesforceSalesforce OAuth 2.0 (per-user)
OAuth Scopes
Config Fields
None — fetches Accounts, Contacts, Opportunities, and Notes you have read access to
Sync Frequency
Every 5 minutes
Identity Signal
Salesforce user email linked to Evols user
Data Fetched
Account names, contact names + titles, opportunity stages and amounts, activity notes
Note
Only records visible to your Salesforce profile are fetched — Evols does not elevate permissions.
ZendeskZendesk API token (Bearer)
OAuth Scopes
Config Fields
Zendesk subdomain (e.g. acme for acme.zendesk.com)
Sync Frequency
Every 5 minutes
Identity Signal
Zendesk agent email linked to Evols user
Data Fetched
Ticket subjects, descriptions, comments, and tags from tickets assigned to or CC'd to you
Note
Paste your Zendesk API token (not your password) from Zendesk → Profile → API → Token Access.
GitHubGitHub Personal Access Token
OAuth Scopes
Config Fields
Repository name in org/repo format (e.g. acme/backend)
Sync Frequency
Every 5 minutes
Identity Signal
GitHub username linked to Evols user
Data Fetched
Issue titles and bodies, pull request titles, descriptions, and review comments
Note
Use a fine-grained token scoped to specific repos for least-privilege access.
Sync Frequency & Scoping
Evols polls all connected integrations every 5 minutes. Each sync is incremental — only content created or updated since the last successful pull is fetched.
| Source | Config key | Example |
|---|---|---|
| Slack | channel_ids | C04ABCDEF, C04XYZABC |
| GitHub | repo | acme/backend |
| Zendesk | subdomain | acme (for acme.zendesk.com) |
Data Pipeline — Integration to Graph
1 · Incremental pull
Scheduler fetches new items every 5 minutes. Each item (message thread, email, page, issue) is formatted as a plain-text document.
2 · LightRAG ingestion
The text document is chunked and passed to LightRAG. One LLM call per chunk extracts entities and relationships into the PostgreSQL vector store and the graph.
3 · Nightly deduplication
A batch job merges duplicate entities and resolves conflicting descriptions using temporal precedence — newer sources win.
4 · Confidence scoring
Each entity's confidence score is recalculated nightly based on distinct sources, relationship density, and description completeness.
Identity Resolution
When multiple team members connect the same integration type, Evols correlates the same person across different tools via cross-source identity resolution.
Example: same person, three sources
slack:U04ABCDEF → alice@company.com
github:alicesmith → alice@company.com
outlook:alice@company.com → alice@company.com
↓ nightly dedup resolves to:
Person entity: “Alice Smith” confidence: 0.92 sources: [slack, github, outlook]
Privacy & Data Access
What Evols does NOT access:
- ✕Slack direct messages (only public and private channels you're a member of)
- ✕Emails you have not received — only your own inbox is synced, not a shared mailbox
- ✕Salesforce records outside your profile's visibility
- ✕GitHub repositories the token is not scoped to
- ✕Notion pages not explicitly shared with the Evols integration
OAuth tokens are encrypted with AES-256-GCM before storage. Disconnecting an integration immediately wipes the stored tokens. All synced content is scoped to your tenant_id and never visible to other workspaces.
Developer Tools
MCP Endpoint
Evols exposes a Streamable-HTTP MCP (Model Context Protocol) server so AI tools can read your team's product knowledge directly.
- •Connect Claude Desktop, Cursor, or any MCP-compatible client
- •MCP endpoint: https://your-instance/mcp/sse
- •Authenticate with an evols_... API key generated in Settings → Security
- •Exposes tools: get_context, get_work_context, query_knowledge_graph, get_team_context
Evols CLI
The Evols CLI wires MCP and hooks into every coding agent on your machine. Claude Code, Cursor, Zed, Codex, Antigravity, Cline, and GitHub Copilot are detected and configured automatically.
- •Install: curl -fsSL https://api.evols.ai/api/v1/install/script | sh
- •Authenticate: evols login — enter your API key from Settings → Security
- •Wire all detected agents: evols install
- •Backfill historical sessions into the team knowledge graph: evols sync
- •The MCP server (evols mcp-server) is spawned automatically by agents — no manual process required
API Keys
Generate API keys with the evols_... prefix for programmatic access to Evols data.
- •Generate and revoke keys from Settings → Security
- •Scoped per tenant — keys only access data within your workspace
- •Use as Bearer tokens for the REST API or MCP endpoint
REST API
Authentication
Register and obtain a JWT token:
curl -X POST http://localhost:8000/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"pm@company.com","password":"...","full_name":"PM"}'Pass the token as a Bearer header on subsequent requests, or use an API key from Settings → Security.
OpenAPI Docs
Interactive API docs are available at http://localhost:8000/docs when running locally.
Tenancy & Workspaces
Workspace Isolation
Every organisation in Evols is an isolated tenant. All data — knowledge sources, the knowledge graph, LLM configuration, skills, work context, and API keys — is scoped per workspace and never shared across tenants.
- •Create your workspace at /register; each registration provisions a new isolated tenant
- •Invite team members from Settings → Team (TENANT_ADMIN only)
- •All knowledge, skills, and AI configuration are private to your workspace
User Roles
Evols has three roles with distinct permissions.
- •USER — regular team member; can use Workbench, Knowledge, Work Context, and Skills
- •TENANT_ADMIN — org administrator; everything a USER can do, plus: invite and remove users, configure the LLM provider (BYOK), and manage API keys
- •SUPER_ADMIN — platform-level administrator (Evols-internal); no tenant; manages all tenants via the Admin Panel
BYOK — Bring Your Own Keys
Evols does not bundle an LLM API key. Each workspace connects its own LLM provider — keys are stored AES-256-GCM encrypted per tenant and are never shared with other workspaces. Only a TENANT_ADMIN can configure or update the LLM settings (Settings → LLM Settings). After saving, use Test Connection to verify the key and model are reachable before the team starts using the Workbench.
Supported Providers
| Provider | Required fields | Embeddings | Get key |
|---|---|---|---|
| OpenAI | API key, model, embedding model | Native | platform.openai.com |
| Azure OpenAI | API key, endpoint, deployment name | Native | portal.azure.com |
| AWS Bedrock | Region, access key ID + secret (or API key) | Native | aws.amazon.com |
| Anthropic | API key, model | Fallback | console.anthropic.com |
| Google Gemini | API key, model | Fallback | aistudio.google.com |
| Groq | API key, model | Fallback | console.groq.com |
| Mistral AI | API key, model | Fallback | console.mistral.ai |
| Cohere | API key, model | Fallback | dashboard.cohere.com |
| Together AI | API key, model | Fallback | api.together.ai |
| DeepSeek | API key, model | Fallback | platform.deepseek.com |
| xAI (Grok) | API key, model | Fallback | console.x.ai |
| OpenRouter | API key, model (free-text) | Fallback | openrouter.ai |
| Ollama | Base URL, model name (no API key) | Fallback | ollama.ai |
⚠ Embedding caveat
Only OpenAI, Azure OpenAI, and AWS Bedrock have native embedding APIs. All other providers fall back to a local sentence-transformers model (384-dimension vectors vs 1536 for OpenAI — incompatible). If you switch between provider types, all existing semantic search will return wrong results until you re-index your knowledge base.
Provider notes
OpenAI
sk-proj-... or sk-...Recommended default. Model list includes GPT-5.4, GPT-4o and others. Embedding models (text-embedding-3-large recommended) are configured separately and enable full LightRAG support.
Azure OpenAI
32-character hex stringFor enterprise customers with Azure agreements or EU data residency requirements. Requires a deployment name that matches what you created in the Azure Portal.
AWS Bedrock
Access key ID starts with AKIAEmbeddings use Amazon Titan automatically — no extra configuration. Request model access in the AWS Console under Bedrock → Model access before use.
Anthropic
sk-ant-...No embedding support — falls back to local sentence-transformers. Best for long-context tasks; Claude Sonnet 4.6 is the recommended model.
Groq
gsk_...Fastest inference for Llama and Mixtral models. Tool calling supported on Llama 3.x models only.
Mistral AI
from console.mistral.aiTool calling supported on mistral-large and mistral-medium; not on open-mistral-nemo. European-based infrastructure if data residency matters.
Cohere
from dashboard.cohere.comTool calling supported on command-r-plus only. No embedding support via the chat provider.
Together AI
from api.together.aiWide selection of open-source models. Tool calling supported on Llama 3.x; not on older Mixtral models.
DeepSeek
sk-...Very competitive quality-to-cost ratio. Two model families: deepseek-v3.2 for general use and deepseek-r1 for complex reasoning tasks.
xAI (Grok)
xai-...Grok 4 and Grok 3 family. No embedding support.
OpenRouter
sk-or-...A single API key that routes to 200+ models. The model field is free-text: enter any model ID from openrouter.ai/models in the format openrouter/<provider>/<model-slug>.
Ollama (Local)
No API key — runs on your infrastructureThe Base URL must be reachable from the Evols backend container, not your browser. Pull models with ollama pull llama3.2 before configuring.
Using a model not in the dropdown
For OpenRouter, the model field already accepts any free-text model ID. For all other providers, you can configure any valid model ID via the API — the backend passes it directly to the provider:
curl -X POST /api/v1/llm-settings \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"provider":"groq","api_key":"gsk_...","model":"llama-3.3-70b-specdec"}'Support
Need help? Reach us at:
- Email: support@evols.ai
- GitHub: Report bugs or request features