160 lines
4.9 KiB
Markdown
160 lines
4.9 KiB
Markdown
# Trilium ETAPI Integration Setup
|
|
|
|
This guide will help you enable Lyra's integration with your Trilium notes using the ETAPI (External API).
|
|
|
|
## What You Can Do with Trilium Integration
|
|
|
|
Once enabled, Lyra can help you:
|
|
- 🔍 Search through your notes
|
|
- 📝 Create new notes from conversations
|
|
- 🔄 Find duplicate or similar notes
|
|
- 🏷️ Suggest better organization and tags
|
|
- 📊 Summarize and update existing notes
|
|
|
|
## Prerequisites
|
|
|
|
- Trilium Notes installed and running
|
|
- Access to Trilium's web interface
|
|
- Lyra running on the same network as Trilium
|
|
|
|
## Step 1: Generate ETAPI Token in Trilium
|
|
|
|
1. **Open Trilium** in your web browser (e.g., `http://10.0.0.2:4292`)
|
|
|
|
2. **Navigate to Options**:
|
|
- Click the menu icon (≡) in the top-left corner
|
|
- Select **"Options"** from the menu
|
|
|
|
3. **Go to ETAPI Section**:
|
|
- In the Options sidebar, find and click **"ETAPI"**
|
|
- This section manages external API access
|
|
|
|
4. **Generate a New Token**:
|
|
- Look for the **"Create New Token"** or **"Generate Token"** button
|
|
- Click it to create a new ETAPI token
|
|
- You may be asked to provide a name/description for the token (e.g., "Lyra Integration")
|
|
|
|
5. **Copy the Token**:
|
|
- Once generated, you'll see a long string of characters (this is your token)
|
|
- **IMPORTANT**: Copy this token immediately - Trilium stores it hashed and you won't see it again!
|
|
- The token message will say: "ETAPI token created, copy the created token into the clipboard"
|
|
- Example format: `3ZOIydvNps3R_fZEE+kOFXiJlJ7vaeXHMEW6QuRYQm3+6qpjVxFwp9LE=`
|
|
|
|
6. **Save the Token Securely**:
|
|
- Store it temporarily in a secure place (password manager or secure note)
|
|
- You'll need to paste it into Lyra's configuration in the next step
|
|
|
|
## Step 2: Configure Lyra
|
|
|
|
1. **Edit the Environment File**:
|
|
```bash
|
|
nano /home/serversdown/project-lyra/.env
|
|
```
|
|
|
|
2. **Add/Update Trilium Configuration**:
|
|
Find or add these lines:
|
|
```env
|
|
# Trilium ETAPI Integration
|
|
ENABLE_TRILIUM=true
|
|
TRILIUM_URL=http://10.0.0.2:4292
|
|
TRILIUM_ETAPI_TOKEN=your_token_here
|
|
|
|
# Enable tools in standard mode (if not already set)
|
|
STANDARD_MODE_ENABLE_TOOLS=true
|
|
```
|
|
|
|
3. **Replace `your_token_here`** with the actual token you copied from Trilium
|
|
|
|
4. **Save and exit** (Ctrl+O, Enter, Ctrl+X in nano)
|
|
|
|
## Step 3: Restart Cortex Service
|
|
|
|
For the changes to take effect, restart the Cortex service:
|
|
|
|
```bash
|
|
cd /home/serversdown/project-lyra
|
|
docker-compose restart cortex
|
|
```
|
|
|
|
Or if running with Docker directly:
|
|
```bash
|
|
docker restart cortex
|
|
```
|
|
|
|
## Step 4: Test the Integration
|
|
|
|
Once restarted, try these example queries in Lyra (using Cortex mode):
|
|
|
|
1. **Test Search**:
|
|
- "Search my Trilium notes for topics about AI"
|
|
- "Find notes containing 'project planning'"
|
|
|
|
2. **Test Create Note**:
|
|
- "Create a note in Trilium titled 'Meeting Notes' with a summary of our conversation"
|
|
- "Save this to my Trilium as a new note"
|
|
|
|
3. **Watch the Thinking Stream**:
|
|
- Open the thinking stream panel (🧠 Show Work)
|
|
- You should see tool calls to `search_notes` and `create_note`
|
|
|
|
## Troubleshooting
|
|
|
|
### "Connection refused" or "Cannot reach Trilium"
|
|
- Verify Trilium is running: `curl http://10.0.0.2:4292`
|
|
- Check that Cortex can access Trilium's network
|
|
- Ensure the URL in `.env` is correct
|
|
|
|
### "Authentication failed" or "Invalid token"
|
|
- Double-check the token was copied correctly (no extra spaces)
|
|
- Generate a new token in Trilium if needed
|
|
- Verify `TRILIUM_ETAPI_TOKEN` in `.env` is set correctly
|
|
|
|
### "No results found" when searching
|
|
- Verify you have notes in Trilium
|
|
- Try a broader search query
|
|
- Check Trilium's search functionality works directly
|
|
|
|
### Tools not appearing in Cortex mode
|
|
- Verify `ENABLE_TRILIUM=true` is set
|
|
- Restart Cortex after changing `.env`
|
|
- Check Cortex logs: `docker logs cortex`
|
|
|
|
## Security Notes
|
|
|
|
⚠️ **Important Security Considerations**:
|
|
|
|
- The ETAPI token provides **full access** to your Trilium notes
|
|
- Keep the token secure - do not share or commit to git
|
|
- The `.env` file should be in `.gitignore` (already configured)
|
|
- Consider using a dedicated token for Lyra (you can create multiple tokens)
|
|
- Revoke tokens you no longer use from Trilium's ETAPI settings
|
|
|
|
## Available Functions
|
|
|
|
Currently enabled functions:
|
|
|
|
### `search_notes(query, limit)`
|
|
Search through your Trilium notes by keyword or phrase.
|
|
|
|
**Example**: "Search my notes for 'machine learning' and show the top 5 results"
|
|
|
|
### `create_note(title, content, parent_note_id)`
|
|
Create a new note in Trilium with specified title and content.
|
|
|
|
**Example**: "Create a note called 'Ideas from Today' with this summary: [content]"
|
|
|
|
**Optional**: Specify a parent note ID to nest the new note under an existing note.
|
|
|
|
## Future Enhancements
|
|
|
|
Potential additions to the integration:
|
|
- Update existing notes
|
|
- Retrieve full note content by ID
|
|
- Manage tags and attributes
|
|
- Clone/duplicate notes
|
|
- Export notes in various formats
|
|
|
|
---
|
|
|
|
**Need Help?** Check the Cortex logs or open an issue on the project repository.
|