Your AI Will Know Your Entire Codebase in 5 Minutes
Right now: Your AI hallucinates patterns. You copy-paste docs every session. New developers ask the same questions for weeks. 5 minutes from now: Your AI assistant has instant access to every README, wiki page, and architecture doc across all your repositories. This guide gets you there—fast.What You’ll Accomplish
Connect GitHub
Index Documentation
Configure AI Tool
Ask First Question
Prerequisites
You’ll need:- Required
- Recommended (Not Required)
GitHub Account
AI Coding Assistant
- Claude Desktop (recommended)
- Cursor
- Windsurf
- VSCode with Continue/Cline
- See all 40+ tools
- Public or private repositories (both supported)
- GitHub, GitLab, Bitbucket, or Gitea
- Documentation in Markdown, README files, wikis, or code comments
Step 1: Create Your ULPI Account
Stop wasting time searching. Let’s fix this now.Visit app.ulpi.io
Authenticate with GitHub
- ✅ Read-only access to repositories
- ✅ Webhook access (for auto-sync)
- ❌ We never write to your code
- ❌ We never modify repositories
Choose Your Plan
- Starter ($29/mo)
- Professional ($99/mo)
- Enterprise ($299/mo)
- 5 repositories
- 100,000 tokens/month (~15-20 searches/day)
- Semantic search across all docs
- Auto-sync on every push
- MCP integration (40+ AI tools)
- Email support
Complete Billing
- 🔒 Bank-level security (PCI-DSS Level 1)
- 💳 30-day money-back - cancel anytime, full refund
- 🔄 Flexible billing - change plans monthly
- 📊 Transparent usage - see token consumption in real-time
Step 2: Connect Your Repositories
Make your documentation searchable by AI.Navigate to Repositories
- Click Repositories in the left sidebar
- You’ll see the repository connection screen
Select Repositories to Connect
- Select Individual Repos
- Connect All Repositories
- Filtered by Team/Org
- Browse your repositories in the list
- Check the boxes next to repositories with documentation
- Click Connect Selected (green button)
Grant Permissions
✅ Read Repository Contents
✅ Read Repository Contents
- Documentation files (
.md,.mdx,README.*) - Wiki pages (optional, you can disable)
- Code comments (optional, disabled by default)
- Source code (unless you enable comment indexing)
- Secrets,
.envfiles - Build artifacts,
node_modules/ - Binary files
✅ Receive Webhook Notifications
✅ Receive Webhook Notifications
- Automatic re-indexing on git push
- Keep documentation always up-to-date
- No manual “sync” button needed
- Push to main/master branch
- Pull request merges
- Wiki updates
- Manual trigger from dashboard
❌ We Never Write to Your Code
❌ We Never Write to Your Code
- ❌ Cannot modify files
- ❌ Cannot create commits
- ❌ Cannot push changes
- ❌ Cannot delete repositories
Wait for Initial Indexing
- What Gets Indexed
- Indexing Speed
- What Happens During Indexing
- ✅
README.md,README.txt(all directories) - ✅
docs/anddocumentation/directories - ✅ All
.mdand.mdxfiles - ✅
CONTRIBUTING.md,CHANGELOG.md - ✅ Architecture Decision Records (ADRs)
- ✅
.github/documentation
- 🔧 Wiki pages (disabled by default, can enable)
- 🔧 Code comments and docstrings (disabled by default)
- 🔧 Jupyter notebooks (
.ipynb) - 🔧
.txtfiles in doc directories
- ❌
node_modules/,vendor/,packages/ - ❌ Build directories (
dist/,build/,out/) - ❌
.git/directory - ❌ Binary files (images, PDFs, etc.)
- ❌ Large files (>1MB)
.ulpiignore file (works like .gitignore)Troubleshooting: Repository not appearing in list
Troubleshooting: Repository not appearing in list
-
Check GitHub OAuth permissions:
- Go to github.com/settings/applications
- Find “ULPI Documentation”
- Ensure it has access to the organization
- Click “Grant access” if needed
-
Organization settings:
- Org admin must approve third-party apps
- Ask your GitHub org admin to approve ULPI
- Guide for admins →
-
Repository visibility:
- Private repos require explicit OAuth permission
- Re-authenticate and grant access to private repositories
-
Still not working?
- Contact support: support@ulpi.io
- Include: repository URL, GitHub username, error messages
Step 3: Create an API Key
API keys connect your AI assistant to ULPI’s documentation search.Navigate to API Keys
- Click Settings in sidebar
- Select API Keys tab
- You’ll see the API key management screen
Click Create API Key
Configure Key Settings
- Basic Settings
- Security Settings
- Advanced Settings
Documentation MCP Server(For identification—name it after where you’ll use it)Examples:- “Claude Desktop - MacBook Pro”
- “Cursor - Work Laptop”
- “Team Shared Key”
Environment:
live (production) or test (development)live: Use in real AI assistants (recommended)test: Use for testing, development, experiments
live environment unless you’re developing integrations.Copy Your API Key
- Copy the API key immediately
- Store it securely:
- Password manager (1Password, LastPass, Bitwarden)
- Environment variable in your shell config
- Secure note in your IDE
ulpi_live_sk_1234abcd...- Revoke the old key
- Create a new one
- Update your AI tool config with the new key
Step 4: Configure Your AI Assistant
Connect ULPI to your favorite AI coding tool. Choose your AI assistant below and follow the setup:- Claude Desktop (Recommended)
- Cursor
- Windsurf
- VSCode (Continue / Cline)
- Claude Code (CLI)
- Other AI Tools
Locate Config File
- macOS
- Windows
- Linux
Add ULPI MCP Server
claude_desktop_config.json:ulpi_live_YOUR_KEY_HERE with your actual API key from Step 3.Already have other MCP servers?
Already have other MCP servers?
ulpi-docs block to your existing mcpServers object.Restart Claude Desktop
- Quit Claude Desktop completely (Cmd+Q on Mac, Alt+F4 on Windows)
- Reopen Claude Desktop
- Look for 🔌 MCP icon in bottom toolbar (indicates servers loaded)
Step 5: Test Your First Search
Verify everything works!Open Your AI Assistant
- Claude Desktop
- Cursor
- VSCode with Continue/Cline
- etc.
Ask a Documentation Question
Verify Results
Monitor in Dashboard
- Go to ULPI dashboard → Activity tab
- You’ll see:
- Recent searches
- Which repositories were queried
- Token usage
- Response times
Troubleshooting
🚨 AI Assistant Doesn't Search ULPI
🚨 AI Assistant Doesn't Search ULPI
-
Check MCP server connection:
- Claude Desktop: Look for 🔌 icon in bottom toolbar
- Cursor: Check Settings → MCP Servers shows “Connected”
- VSCode: Continue/Cline should show “ulpi-docs” in status
-
Verify API key format:
Common errors:
-
Check MCP server logs:
- macOS:
~/Library/Logs/Claude/mcp.log - Windows:
%APPDATA%\Claude\Logs\mcp.log - Linux:
~/.config/Claude/logs/mcp.log
- macOS:
-
Restart AI assistant:
- Fully quit (don’t just close window)
- Reopen and try again
- Config changes only load on full restart
⏱️ Indexing Taking Too Long
⏱️ Indexing Taking Too Long
- Less than 100 files: 30 seconds - 2 minutes
- 100-1,000 files: 2-5 minutes
- 1,000-10,000 files: 5-15 minutes
- 10,000+ files: 15-30 minutes
-
Check repository size:
- Dashboard → Repositories → Click repo name
- See “Files discovered” count
- Large repos (10,000+ files) can take 30-45 minutes
-
Check for errors:
- Look for ⚠️ warning icon next to repository
- Click for error details
- Common issues:
- Binary files causing slowdown (auto-excluded, but takes time to detect)
- Network issues accessing GitHub
- Very large markdown files (>5MB)
-
Force re-index:
- Dashboard → Repositories → Click ⟳ Re-index button
- This restarts the indexing process
- Sometimes resolves stuck states
-
Contact support:
- If stuck >1 hour: support@ulpi.io
- Include: repository name, size, approximate file count
🔍 Search Returns No Results
🔍 Search Returns No Results
-
Indexing not complete:
- Dashboard → Repositories → Check status
- Wait for ”✅ Indexed” status
- Usually takes 2-5 minutes
-
Documentation doesn’t exist:
- Verify your repos actually have docs about that topic
- Check if docs use different terminology
- Example: You ask about “authentication” but docs say “auth” or “login”
-
Wrong repository scope:
- API key might be scoped to specific repos
- Dashboard → Settings → API Keys → Check scopes
- Expand scope or use different key
-
Query too vague:
- ❌ “How does it work?”
- ✅ “How does authentication work?”
- ✅ “Explain our Redis caching strategy”
- Be specific!
-
Files excluded by default:
- Check
.ulpiignorefile in repository - Dashboard → Repositories → Click repo → See “Excluded patterns”
- Adjust exclusions if needed
- Check
🔑 API Key Issues
🔑 API Key Issues
-
Verify key format:
-
Check environment match:
- API key environment (
livevstest) - MCP server environment
- Dashboard shows environment per key
- API key environment (
-
Verify key not revoked:
- Dashboard → Settings → API Keys
- Check key status is “Active” (not “Revoked”)
- If revoked, create a new key
-
Test API key directly:
Expected response:Error response:
💾 Token Limit Exceeded
💾 Token Limit Exceeded
-
Check current usage:
- Dashboard → Usage & Billing
- See tokens used vs. plan limit
- View usage by day/week/month
-
Upgrade plan:
- Starter (100k) → Professional (500k)
- Professional → Enterprise (2M)
- Settings → Billing → Change Plan
-
Buy token overage:
- $20 per 100,000 additional tokens
- No service interruption
- Automatically billed at end of month
- Dashboard → Usage → “Buy More Tokens”
-
Set usage alerts:
- Dashboard → Settings → Usage Alerts
- Get notified at 50%, 75%, 90% of limit
- Prevents surprises
-
Optimize searches:
- Be more specific in queries (returns less data)
- Scope searches to specific repositories
- Avoid overly broad questions
🔒 Repository Access Denied
🔒 Repository Access Denied
-
Re-authenticate with GitHub:
- Dashboard → Settings → Integrations
- Click “Reconnect GitHub”
- Grant access to private repositories
-
Check organization approval:
- GitHub org admin must approve ULPI app
- Ask admin to:
- Go to
github.com/organizations/YOUR_ORG/settings/oauth_application_policy - Find “ULPI Documentation”
- Click “Grant access”
- Go to
-
Verify API key scope:
- Dashboard → Settings → API Keys
- Click key name → View scopes
- Ensure key has access to that repository
-
Repository permissions:
- You must have at least “Read” access to repo in GitHub
- Org admins can grant access via GitHub teams
🌐 Network / Firewall Issues
🌐 Network / Firewall Issues
-
Whitelist ULPI domains:
-
Allow outbound HTTPS (port 443):
- ULPI MCP server needs to reach
api.ulpi.io:443 - Check corporate firewall rules
- ULPI MCP server needs to reach
-
Proxy configuration:
-
VPN conflicts:
- Try disconnecting VPN temporarily
- If works without VPN, configure VPN to allow ULPI
-
Test connectivity:
Expected: HTTP 200 OK Error: Connection timeout or refused
- Error message screenshot
- MCP server logs
- API key (first/last 4 characters only)
- AI tool and OS you’re using
What’s Next?
Advanced Search Features
How It Works (Technical Deep Dive)
Repository Management
.ulpiignore, custom exclusions, wiki integrationAPI Integration
Success Story
Your team’s documentation is searchable now. Time to see the same transformation.- 📧 Email: support@ulpi.io
- 📚 Docs: docs.ulpi.io
- 💬 Slack Community: ulpi.io/slack
- 🐛 Bug Reports: github.com/ulpi-io/feedback