Troubleshooting
Solutions to common issues with ctxloom.
Installation Issues
Command Not Found
Problem: ctxloom: command not found
Solutions:
- Ensure Go bin is in PATH:
export PATH=$PATH:$(go env GOPATH)/bin- Reinstall from source:
git clone https://github.com/ctxloom/ctxloom.gitcd ctxloomgo generate ./...go install .- Verify installation:
which ctxloomctxloom --versionBuild Errors
Problem: Build fails with dependency errors
Solution:
go clean -modcachego mod downloadgo generate ./...go install .macOS Issues
”Cannot be opened” or “Unverified developer”
Problem: macOS blocks ctxloom with messages like:
- “ctxloom cannot be opened because it is from an unidentified developer”
- “ctxloom cannot be opened because Apple cannot check it for malicious software”
This happens because ctxloom binaries are not code-signed or notarized with Apple (common for open-source CLI tools).
Solution 1: Remove quarantine attribute (Recommended)
xattr -d com.apple.quarantine /usr/local/bin/ctxloomSolution 2: Allow via System Settings
- Try to run
ctxloom- it will be blocked - Open System Settings → Privacy & Security
- Find the blocked app message and click “Open Anyway”
- Confirm in the dialog
Solution 3: Build from source
git clone https://github.com/ctxloom/ctxloom.gitcd ctxloomgo generate ./...go install .Shell completion not loading on macOS
Problem: Bash completions don’t work after installation
Solution: Ensure bash-completion is installed:
brew install bash-completionAdd to ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"Then install the completion:
ctxloom completion bash > /usr/local/etc/bash_completion.d/ctxloomContext Not Injected
Hooks Not Applied
Problem: Context doesn’t appear in Claude Code sessions
Check hooks configuration:
cat .claude/settings.json | jq '.hooks'Expected output:
{ "SessionStart": { "hooks": [ { "type": "command", "command": "ctxloom hook inject-context <hash>" } ] }}Fix:
ctxloom initContext File Missing
Problem: Hook runs but no context appears
Check context file:
ls -la .ctxloom/context/Regenerate:
ctxloom initWrong Directory
Problem: ctxloom not finding configuration
Check you’re in the right directory:
# Should show your .ctxloom directoryls -la .ctxloom/
# Or initialize if missingctxloom initRemote Issues
Authentication Failed
Problem: 401 Unauthorized or 403 Forbidden when accessing remotes
Solution - Set authentication token:
# GitHubexport GITHUB_TOKEN=ghp_xxxxxxxxxxxx
# GitLabexport GITLAB_TOKEN=glpat-xxxxxxxxxxxxVerify token:
# Test GitHub accesscurl -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/userRate Limiting
Problem: 403 rate limit exceeded
Solutions:
- Set authentication token (increases rate limit):
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx-
Wait for rate limit reset (usually 1 hour)
-
Check current rate limit:
curl -H "Authorization: token $GITHUB_TOKEN" \ https://api.github.com/rate_limitRemote Not Found
Problem: remote not found: myremote
Check configured remotes:
ctxloom remote listAdd the remote:
ctxloom remote add myremote owner/repoSync Failures
Problem: ctxloom remote sync fails
Debug:
# Check what's being syncedctxloom remote sync --dry-run
# Sync with verbose outputCTXLOOM_VERBOSE=1 ctxloom remote sync
# Force re-syncctxloom remote sync --forceProfile Issues
Profile Not Found
Problem: profile not found: myprofile
List available profiles:
ctxloom profile listCheck profile location:
ls .ctxloom/profiles/ls ~/.ctxloom/profiles/Circular Inheritance
Problem: circular profile inheritance detected
Check profile parents:
ctxloom profile show myprofileFix: Remove circular parent references in profile YAML.
Missing Bundles
Problem: Profile references bundles that don’t exist
Check what bundles are available:
ctxloom fragment listInstall missing bundles:
ctxloom fragment install remote/missing-bundleFragment Issues
Fragment Not Found
Problem: fragment not found: myfrag
List available fragments:
ctxloom fragment listctxloom fragment list --bundle mybundleCheck fragment reference format:
# Correct formats:ctxloom fragment show mybundle#fragments/fragnamectxloom fragment show fragname # searches all bundlesYAML Parse Error
Problem: failed to parse bundle: yaml error
Validate YAML syntax:
# Use a YAML linteryamllint .ctxloom/bundles/mybundle.yaml
# Or try loading the bundlectxloom fragment list --bundle mybundleCommon YAML issues:
- Incorrect indentation (use spaces, not tabs)
- Missing quotes around special characters
- Improper multiline string syntax
Content Too Large
Problem: warning: assembled context is 24KB (recommended max: 16KB)
Solutions:
- Distill verbose fragments:
ctxloom fragment distill mybundle- Use fewer fragments:
# Check what's includedctxloom run --dry-run --print | wc -c- Create focused profiles:
# Instead of one large profile, create task-specific ones# api-dev.yaml - only API-related fragments# testing.yaml - only testing fragmentsMCP Server Issues
Server Won’t Start
Problem: ctxloom mcp serve fails
Check for port conflicts:
# MCP uses stdio, but check for other issuesctxloom mcp serve 2>&1 | head -20Verbose mode:
CTXLOOM_VERBOSE=1 ctxloom mcp serveTools Not Appearing
Problem: MCP tools don’t show up in Claude Code
Check MCP configuration:
cat .claude/settings.json | jq '.mcpServers'Ensure ctxloom is registered:
ctxloom mcp auto-register --enablectxloom initRestart Claude Code after configuration changes.
Tool Execution Fails
Problem: MCP tool returns error
Check ctxloom logs:
# Run MCP server with verbose loggingCTXLOOM_VERBOSE=1 ctxloom mcp serveTest tool directly:
# Test the underlying CLI commandctxloom fragment listctxloom profile listPerformance Issues
Slow Context Assembly
Problem: ctxloom run takes a long time
Diagnose:
time ctxloom run --dry-runSolutions:
- Reduce fragment count - use fewer, more focused fragments
- Use distillation - smaller fragments load faster
- Check disk I/O - ensure .ctxloom/ isn’t on slow storage
Slow Remote Operations
Problem: Remote sync/browse is slow
Solutions:
- Check network - ensure good connectivity to GitHub/GitLab
- Use caching - ctxloom caches remote content locally
- Reduce scope - sync specific profiles instead of all:
ctxloom remote sync --profiles myprofileConfiguration Issues
Config Not Loading
Problem: Configuration changes not taking effect
Check config location:
# Project configcat .ctxloom/config.yaml
# User configcat ~/.ctxloom/config.yamlValidate config:
# Use a YAML linteryamllint .ctxloom/config.yaml
# Or test by showing configctxloom config showEnvironment Variables Not Working
Problem: Environment variables aren’t being used
Check variable is set:
echo $MY_VARIABLECheck variable syntax in templates:
# Correctcontent: "API key: {{API_KEY}}"
# Wrongcontent: "API key: $API_KEY"Getting Help
Debug Mode
Enable verbose output for any command:
CTXLOOM_VERBOSE=1 ctxloom <command>Check Version
Ensure you’re on the latest version:
ctxloom --version
# Update from sourcecd ctxloomgit pullgo generate ./...go install .Report Issues
If you’ve tried the above and still have issues:
- Gather information:
ctxloom --versiongo versionuname -a-
Create minimal reproduction
-
File issue: https://github.com/ctxloom/ctxloom/issues
Include:
- ctxloom version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Relevant configuration (sanitized)