A Kiro IDE extension for browsing, previewing, and installing steering documents from a GitHub repository. Discover and adopt community-created steering rules and conventions to guide Kiro's code generation.
- AI-Powered Recommendations: Get smart document suggestions based on your workspace analysis
- Simple Toggle Control: One-click toggle to activate or deactivate steering documents
- Bulk Activation: Multi-select documents from recommendations for instant activation
- Smart Defaults: Automatic inclusion mode selection based on document metadata
- Kiro Sidebar Integration: Access documents directly from the Kiro sidebar alongside other Kiro tools
- Browse Documents: Explore available steering documents organized by category and folder hierarchy
- Hierarchical Organization: Navigate nested folder structures within categories for better document organization
- Preview Content: View document content before installation with markdown preview
- Quick Load: Install and activate documents in one action
- Manage Inclusion Modes: Control when Kiro loads specific guidance into the agent context
- Update Management: Check for and install updates to installed documents
- Offline Support: Continue browsing with cached data when offline
- Kiro IDE: This extension requires Kiro IDE (not compatible with VS Code or other editors)
- Install the extension from the Kiro extension marketplace
- Open a workspace in Kiro
- Find the "Steering Documents" view in the Kiro sidebar (left panel)
- Click the sparkle ✨ icon at the top of the Steering Documents view
- Select documents from the Quick Pick (use Tab to multi-select)
- Press Enter - documents activate instantly with smart defaults
- Done! Documents are now active in your workspace
Recommendations analyze your package.json and project structure to suggest relevant documents. For best results, use them after your project dependencies are set up.
With Kiro Specs (Requirements → Design → Tasks):
- Complete your Requirements document
- Complete your Design document (defines your tech stack)
- Set up your project:
npm initand install main dependencies - Click recommendations ← sweet spot
- Install the suggested steering docs
- Execute your Tasks with guidance in place
For existing projects: Just click recommendations - your dependencies are already there.
No package.json yet? You can still browse all documents in the tree view and install manually. Run recommendations again after setting up your project to get personalized suggestions.
What gets analyzed:
package.jsondependencies and devDependenciestsconfig.jsonpresence (TypeScript detection)- Folder structure (
components/,routes/,api/) - Test file patterns (
*.test.ts,*.spec.js)
Note: In multi-root workspaces, only the first workspace folder is analyzed.
- Browse Documents: Expand categories in the tree view to see available steering documents
- Preview: Click the eye icon (👁️) to preview a document's content
- Toggle On/Off: Click the toggle button next to any document to activate or deactivate it
- Toggle ON: Installs the document and activates it (sets inclusion to "always")
- Toggle OFF: Removes the document from your workspace
- Quick Load: Right-click a document and select "Quick Load" to install and immediately activate it
Steering documents support three inclusion modes that control when Kiro loads them into the agent context:
Documents are automatically loaded into every Kiro conversation. Use this for core guidelines you want Kiro to follow consistently.
Example: Coding standards, project conventions, team best practices
Visual Indicator: 🟢 Green dot in tree view
Documents are only loaded when you explicitly reference them using # in chat. Use this for specialized guidance you need occasionally.
Example: Deployment procedures, specific framework documentation
Visual Indicator: 🔵 Blue dot in tree view
Documents are automatically loaded when files matching a specific pattern are in context. Use this for language or framework-specific guidance.
Example: TypeScript guidelines (pattern: *.ts), React conventions (pattern: *.tsx)
Visual Indicator: 🟡 Yellow dot in tree view
- Right-click an installed document in the tree view
- Select "Set Inclusion: Always", "Set Inclusion: Manual", or "Set Inclusion: File Match"
- For File Match mode, enter a glob pattern when prompted (e.g.,
*.ts,src/**/*.py)
Access these commands from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
- Get Recommendations (✨): AI-powered document suggestions with bulk activation
- Toggle Document: Simple on/off control for activating or deactivating documents
- Refresh: Reload the document list from GitHub
- Check for Updates: Check all installed documents for available updates
- Show Active Documents Only: Filter the tree view to show only documents with "always" inclusion mode
- Preview Document: View document content in a read-only editor
- Install Document: Download and save a document to
.kiro/steering/ - Quick Load (Install & Activate): Install a document with "always" inclusion mode
- Update Document: Update an installed document to the latest version
- Set Inclusion: Always/Manual/File Match: Change how a document is loaded
- Steering Docs: Set GitHub Token: Securely store your GitHub Personal Access Token using the OS credential manager
- Steering Docs: Clear GitHub Token: Remove your stored token from secure storage
- Steering Docs: Check Token Status: Verify your token configuration and test validity against GitHub API
Configure the extension through Kiro Code settings (File > Preferences > Settings > Extensions > Kiro Steering Documents):
{
// GitHub repository containing steering documents
"steeringDocs.repository": "mikeartee/kiro-steering-docs",
// Branch to fetch documents from
"steeringDocs.branch": "main",
// Cache timeout in seconds (default: 1 hour)
"steeringDocs.cacheTimeout": 3600,
// Automatically check for updates on activation
"steeringDocs.autoCheckUpdates": true
}GitHub API has rate limits that affect how many documents you can browse and install:
| Authentication | Rate Limit | Use Case |
|---|---|---|
| Anonymous (no token) | 60 requests/hour | Public repos, light usage |
| Personal Access Token | 5,000 requests/hour | Private repos, heavy usage |
- Generate a token at GitHub Settings → Developer settings → Personal access tokens
- Select scopes:
- For public repos: No scopes required (read-only access is default)
- For private repos: Select the
reposcope
- Run the command:
Steering Docs: Set GitHub Tokenfrom the Command Palette - Paste your token in the secure input box (input is masked)
Your token is stored securely using the operating system's credential manager (Windows Credential Manager, macOS Keychain, or Linux Secret Service).
| Command | Description |
|---|---|
Steering Docs: Set GitHub Token |
Securely store your GitHub token |
Steering Docs: Clear GitHub Token |
Remove your stored token |
Steering Docs: Check Token Status |
Verify token configuration and validity |
- Encrypted Storage: Tokens are stored using the SecretStorage API, which uses your OS credential manager
- No Settings Sync: Tokens are never synced to the cloud
- Audit Logging: Token operations are logged to the "Steering Docs Security Audit" output channel
- Automatic Migration: If you previously stored a token in settings.json, it will be automatically migrated to secure storage
Note: The legacy
steeringDocs.githubTokensetting is deprecated. Please use the "Set GitHub Token" command instead for secure storage.
The tree view uses icons to indicate document status and organization:
- ⚪ Not Installed: Circle outline - document is available for installation
- 🟢 Always Active: Green filled circle - inclusion mode is "always"
- 🔵 Manual: Blue filled circle - inclusion mode is "manual"
- 🟡 File Match: Yellow filled circle - inclusion mode is "fileMatch"
- 🟠 Update Available: Orange filled circle - an update is available (takes priority over inclusion mode colors)
- 📁 Category: Folder icon - document category grouping
- 📂 Folder: Folder icon - nested folder within a category (collapsible)
When an update is available, the document description shows the version change (e.g., "1.0.0 -> 1.1.0").
- Expand the "Code Formatting" category, then the
languagesfolder - Find
typescript-formatting.md - Click the eye icon to preview the content
- Right-click and select "Quick Load (Install & Activate)"
- The document is now active in all Kiro conversations
- Install
python-formatting.mdfrom "Code Formatting" →languages - Right-click the installed document
- Select "Set Inclusion: File Match"
- Enter pattern:
*.py - The guide now loads automatically when working with Python files
- Install
semantic-contracts-for-kiro.mdfrom the "Semantic Anchors" category - Right-click and select "Set Inclusion: Manual"
- In Kiro chat, reference it with:
#semantic-contracts-for-kiro.md - Kiro loads the document only for that conversation
Once installed, steering documents guide Kiro's behavior. Here's how they work:
Steering documents are markdown files with YAML frontmatter:
---
version: "1.0.0"
category: "coding-standards"
description: "TypeScript coding standards"
inclusion: "always"
---
# TypeScript Guidelines
## Naming Conventions
- Use camelCase for variables and functions
- Use PascalCase for classes and interfaces
...- Always mode: Content is included in every Kiro conversation automatically
- Manual mode: Content is included only when you reference the file with
#filename.md - File Match mode: Content is included when relevant files are in the conversation context
- Start with Quick Load: Use Quick Load for essential documents you want active immediately
- Use File Match for Language Rules: Set language-specific guides to fileMatch mode
- Keep Manual for Reference: Use manual mode for checklists and procedures
- Review Before Installing: Always preview documents to understand their guidance
- Update Regularly: Check for updates to get the latest best practices
Problem: Tree view shows "Loading..." indefinitely
Solutions:
- Check your internet connection
- Verify the GitHub repository is accessible
- Try clicking the Refresh button
- Check the Output panel (View > Output) and select "Kiro Steering Documents" for error details
Problem: Error when installing a document
Solutions:
- Ensure you have write permissions to the workspace
- Check that
.kiro/steering/directory is not read-only - Verify disk space is available
- Try installing to a different workspace
Problem: Update indicators don't appear for installed documents
Solutions:
- Click "Check for Updates" in the tree view toolbar
- Verify
steeringDocs.autoCheckUpdatesis enabled in settings - Clear the cache by reloading Kiro
- Check that installed documents have valid version frontmatter
Problem: Document with "always" mode doesn't appear in Kiro context
Solutions:
- Verify the frontmatter includes
inclusion: "always" - Reload Kiro to ensure changes are picked up
- Check the document is in
.kiro/steering/directory - Ensure the document has valid YAML frontmatter
Problem: Cannot browse documents when offline
Solutions:
- The extension caches the last successful document list
- Connect to the internet and click Refresh to update the cache
- Cached data expires after the configured timeout (default: 1 hour)
- Installed documents remain accessible offline
Problem: "Rate limit exceeded" error
Solutions:
- GitHub API allows 60 requests/hour for unauthenticated users
- Wait for the rate limit to reset (check error message for reset time)
- Configure a GitHub Personal Access Token using
Steering Docs: Set GitHub Tokencommand - Use
Steering Docs: Check Token Statusto verify your token is working - Use cached data while waiting for rate limit reset
Problem: Token not working or missing after IDE update
Solutions:
- Run
Steering Docs: Check Token Statusto verify token configuration - If token is missing, re-enter it using
Steering Docs: Set GitHub Token - Check the "Steering Docs Security Audit" output channel for error details
- Note: VS Code SecretStorage has a known issue (#193301) that can cause token loss after IDE updates - simply re-enter your token if this occurs
Contributions are welcome! Here's how you can help:
- Report Issues: Found a bug? Open an issue on GitHub with details
- Suggest Features: Have an idea? Create a feature request
- Submit Pull Requests: Want to contribute code? Fork the repo and submit a PR
- Share Steering Documents: Create and share your own steering documents
# Clone the repository
git clone https://github.com/mikeartee/kiro-steering-docs-extension.git
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Run tests
npm test
# Launch extension in debug mode
# Press F5 in KiroFor issues, feature requests, or contributions:
- GitHub Repository: mikeartee/kiro-steering-docs-extension
- Report Issues: Check existing issues before creating new ones
- Include Details: Kiro version, extension version, and error messages help us help you
MIT License - see LICENSE file for details
Copyright (c) 2025-2026 Michael Rewiri-Thorsen
See CHANGELOG.md for the full version history.
- Built for the Kiro IDE ecosystem
- Inspired by package managers and extension browsers
- Thanks to the Kiro community for feedback and testing