# Quick Start Guide Get up and running with the KOGRAL in 5 minutes. ## Prerequisites - Rust 1.70+ installed - Nickel CLI installed (`cargo install nickel-lang-cli`) - kogral-cli installed (see [Installation](../installation.md)) ## Step 1: Initialize Your Knowledge Base Navigate to your project directory and initialize: ```bash cd /path/to/your/project kogral init ``` This creates a `.kogral/` directory with the following structure: ```text .kogral/ ├── config.toml # Configuration ├── notes/ # General notes ├── decisions/ # Architectural decisions ├── guidelines/ # Project guidelines ├── patterns/ # Reusable patterns └── journal/ # Daily journal entries ``` ## Step 2: Create Your First Note Add a note to your knowledge base: ```bash kogral add note "Getting Started with Rust" \ --tags rust,programming,learning \ --content "Key concepts for learning Rust effectively." ``` Or create interactively: ```bash kogral add note # Follow the prompts to enter title, tags, and content ``` ## Step 3: Create a Decision Record Document an architectural decision: ```bash kogral add decision "Use SurrealDB for Storage" \ --context "Need scalable storage for knowledge graph" \ --decision "Adopt SurrealDB for its graph capabilities" \ --consequence "Better query performance" \ --consequence "Additional infrastructure dependency" ``` ## Step 4: Link Nodes Together Create relationships between nodes: ```bash # Find node IDs kogral list # Create a relationship kogral link relates_to ``` Available relationship types: - `relates_to` - General conceptual link - `depends_on` - Dependency relationship - `implements` - Implementation of a concept - `extends` - Inheritance/extension - `supersedes` - Replaces older version - `explains` - Documentation/clarification ## Step 5: Search Your Knowledge Base Search by text: ```bash # Simple search kogral search "rust" # Filter by type kogral search "architecture" --type decision # Limit results kogral search "error handling" --limit 5 ``` Search semantically (requires embeddings): ```bash # Semantic search finds conceptually related content kogral search "memory safety" --semantic --threshold 0.7 ``` ## Step 6: View Node Details ```bash # Show node by ID kogral show # Show node with relationships kogral show --with-relationships ``` ## Step 7: Edit Documents Directly All knowledge base documents are markdown files you can edit: ```bash # Open in your editor $EDITOR .kogral/notes/getting-started-with-rust.md # Or use your favorite markdown editor code .kogral/notes/ ``` Document format: ```markdown --- id: unique-id type: note title: Getting Started with Rust created: 2026-01-17T10:30:00Z modified: 2026-01-17T10:30:00Z tags: [rust, programming, learning] status: active --- # Getting Started with Rust Content goes here with [[wikilinks]] to other nodes. ## Key Concepts - Ownership - Borrowing - Lifetimes ``` ## Step 8: Create a Daily Journal Entry Start journaling your development progress: ```bash kogral add journal "Today's Progress" \ --content "Learned about trait objects and dynamic dispatch in Rust." ``` Or open today's journal directly: ```bash $EDITOR .kogral/journal/$(date +%Y-%m-%d).md ``` ## Step 9: Export to Logseq (Optional) If you use Logseq, export your knowledge base: ```bash nu scripts/kogral-export-logseq.nu /path/to/logseq-graph ``` This creates a Logseq-compatible graph you can open in Logseq for visual editing. ## Step 10: Start MCP Server for Claude Code Integrate with Claude Code for AI-assisted knowledge management: ```bash # Start MCP server kogral serve # Configure in ~/.config/claude/config.json # Then use in Claude Code: # > kogral/search "rust ownership" ``` ## Common Workflows ### Capture Quick Notes ```bash # Quick note kogral add note "Remember to check error handling in parser module" --tags todo,parser ``` ### Document Architectural Decisions ```bash # Create ADR kogral add decision "Adopt Async Rust for I/O Operations" \ --status accepted \ --tags architecture,async ``` ### Build a Pattern Library ```bash # Add a pattern kogral add pattern "Error Handling with thiserror" \ --tags rust,error-handling \ --content "Standard pattern for error types in this project." ``` ### Track Daily Progress ```bash # Add journal entry kogral add journal --content "Implemented search functionality. Need to add semantic search next." ``` ## Next Steps ### Customize Configuration Edit `.kogral/config.ncl` for advanced configuration: ```nickel { graph = { name = "My Project", version = "1.0.0", }, embeddings = { enabled = true, provider = 'fastembed, }, templates = { templates_dir = "templates", }, } ``` See [Configuration Reference](configuration.md) for all options. ### Set Up Shared Guidelines Create a shared knowledge base for organization-wide standards: ```bash # Create shared KOGRAL mkdir -p ~/Tools/.kogral-shared cd ~/Tools/.kogral-shared kogral init --name "Shared Guidelines" # Add guidelines kogral add guideline "Rust Error Handling" \ --language rust \ --category error-handling # Configure inheritance in projects kogral config set inheritance.base ~/Tools/.kogral-shared ``` ### Automate with NuShell Scripts ```bash # Backup regularly nu scripts/kogral-backup.nu --compress # Sync with SurrealDB nu scripts/kogral-sync.nu --direction bidirectional # Generate statistics nu scripts/kogral-stats.nu --show-tags ``` ### Integrate with Git ```bash # Add to version control git add .kogral/ git commit -m "docs: Add knowledge base" # Add to .gitignore (optional: exclude certain types) echo ".kogral/journal/" >> .gitignore ``` ## Tips and Tricks ### Use Wikilinks Link to other nodes naturally in markdown: ```markdown See [[getting-started-with-rust]] for basics. Related decision: [[use-surrealdb-for-storage]]. ``` ### Reference Code Link to specific code locations: ```markdown Error handling implementation: @src/parser.rs:42 ``` ### Tag Consistently Use consistent tagging for better searchability: ```bash # Good tagging --tags rust,error-handling,pattern # Avoid --tags Rust,ErrorHandling,patterns ``` ### Leverage Templates Customize templates for your workflow: ```bash # Copy template cp templates/note.md.tera templates/meeting-notes.md.tera # Edit for meeting notes format $EDITOR templates/meeting-notes.md.tera ``` ## Troubleshooting ### "KB directory not found" ```bash # Make sure you initialized kogral init # Or specify KB directory kogral --kogral-dir /path/to/.kb search "query" ``` ### "Node not found" ```bash # List all nodes to find ID kogral list # Search for node kogral search "partial title" ``` ### "Failed to parse frontmatter" Check your markdown file has valid YAML frontmatter: ```yaml --- id: my-note type: note title: My Note --- ``` ## Further Reading - [Configuration Reference](configuration.md) - Full configuration options - [CLI Commands](cli-commands.md) - All available commands - [Document Format](document-format.md) - Markdown and frontmatter details - [MCP Tools](../api/mcp-tools.md) - Claude Code integration ## Getting Help - Check `kogral --help` for command usage - Read inline help: `kogral add --help` - Report issues on GitHub - Join community discussions --- **Congratulations!** You've created your first knowledge base. Start capturing knowledge and building connections.