Add support for custom global installation paths with automatic context
reference transformation. This enables users to install to any location
while maintaining working context references.
Changes:
- Add universal path transformation for ANY global installation path
(not just ~/.config/opencode)
- Implement automatic cleanup trap for temp files on exit/crash/interrupt
- Add early validation for --install-dir argument with clear error messages
- Add developer documentation for context reference convention
Technical Details:
- Path transformation detects local vs global by checking if path ends
in .opencode (local) or not (global)
- Transformation applies to ALL file types during installation
- sed transforms both @ references and shell command paths
- Cleanup trap handles EXIT, INT, and TERM signals
Testing:
- 31 unit and integration tests (100% pass rate)
- All README installation scenarios verified
- Edge cases tested and handled
- Cross-platform compatible (macOS, Linux, Windows Git Bash)
Documentation:
- Added dev/docs/context-reference-convention.md explaining the required
@.opencode/context/ format and why it's necessary
- Includes examples, validation instructions, and test results
Breaking changes: None
New capabilities: Custom global path support
- Add research-backed-prompt-design.md with Stanford/Anthropic patterns
- Add openagent.md documentation with workflow and delegation details
- Add developer guides for slash commands and context system
- Document position sensitivity, nesting limits, and instruction ratios
- Include examples and best practices for prompt optimization
- Add get_install_path() helper to convert registry paths to installation paths
- Fix collision detection to check files in custom install directory
- Fix file installation to use custom directory instead of hardcoded .opencode
- Fix env.example path check in post-install message
- Tested with .test-install-dir and .openffff directories - all files now install to correct location
- Position OpenAgent as recommended default for new users
- Add detailed stage diagrams for all 6 workflow stages
- Replace bright purple colors with softer slate blue for better accessibility
- Update all documentation to show OpenAgent as universal coordinator
- Keep codebase-agent as specialized development alternative
- Fix set -e bug: Change ((variable++)) to variable=$((variable + 1)) to prevent script exit on bash 5.2.21 (Ubuntu 24.04)
- Fix collision handling UX: Display menu options correctly by redirecting to stderr
- Add custom installation directory support with --install-dir flag and OPENCODE_INSTALL_DIR env var
- Add interactive location selection menu (Local/Global/Custom)
- Implement cross-platform path handling (Linux/macOS/Windows) with tilde expansion, backslash conversion, and validation
- Enhance help documentation with comprehensive examples and platform support information
Fixes installation failures on modern Linux systems and enables flexible installation to any directory including ~/.config/opencode
Major Changes:
- Rename repository from opencode-agents to OpenAgents
- Remove all hardcoded model specifications (now model-agnostic)
- Fix documentation: profile names, component counts, add Business profile
- Add future plans note for other AI coding tools
Repository Rename:
- Update all URLs to github.com/darrenhinde/OpenAgents
- Update git remote, README, install scripts, documentation
- 15 files updated with new repository name
Model-Agnostic Framework:
- Remove model specifications from 6 agent files
- Framework now works with any AI provider (Claude, GPT, Gemini, local models)
- Users control model selection via OpenCode CLI settings
Documentation Fixes:
- Correct profile name: Core → Essential
- Add missing Business profile documentation
- Fix component counts: Developer (19), Advanced (32)
- Document all 5 profiles with accurate descriptions
Future Plans:
- Add note about support for other AI tools (Cursor, Claude Code, etc.)
- Clear focus on stabilizing OpenCode integration first
This makes OpenAgents a truly universal, model-agnostic framework
accessible to all users regardless of their AI provider preference.
Problem:
- When running 'curl ... | bash -s core' the screen would clear
- This made it appear like nothing was happening after preview
- Users couldn't see the installation progress
Solution:
- Only call 'clear' in interactive mode
- Skip clear when NON_INTERACTIVE=true
- Allows users to see full output when piped from curl
Now users can see:
- Dependency checks
- Registry fetch
- Installation preview
- 'Installing automatically' message
- Full installation progress
- Completion message
This makes the installation process transparent and debuggable.
Problem:
- Running 'curl ... | bash -s core' showed preview and waited for input
- User had to press Y to proceed even though profile was specified
- Defeats the purpose of one-command installation
Solution:
- Add NON_INTERACTIVE flag to track command-line profile usage
- Set NON_INTERACTIVE=true when profile argument provided
- Skip confirmation prompt when NON_INTERACTIVE=true
- Show 'Installing automatically (profile specified)...' message
Behavior:
Before:
curl ... | bash -s core
→ Shows preview, waits for Y/n input
After:
curl ... | bash -s core
→ Shows preview, installs automatically
Interactive mode still works:
bash install.sh
→ Shows menu, asks for confirmation (as expected)
This makes profile-based installation truly one-command with no interaction needed.
Problem:
- Running 'curl ... | bash' without arguments showed interactive menu
- But stdin was the curl stream, not terminal
- Script couldn't read user input and would exit silently
- Confusing user experience
Solution:
- Add check_interactive_mode() to detect if stdin is a terminal
- If running in pipe without arguments, show helpful error message
- Provide clear instructions for both interactive and profile-based install
- Update README to clarify installation methods
Changes:
- Add [ ! -t 0 ] check to detect non-terminal stdin
- Show helpful error with examples when piped without profile
- Update README to recommend profile-based install (fastest)
- Clarify that interactive mode requires downloading first
User Experience:
Before: Silent exit or confusing behavior
After: Clear error message with exact commands to run
Examples shown to user:
- Download first: curl ... -o install.sh && bash install.sh
- Or use profile: curl ... | bash -s core
This fixes the issue reported when running on another computer.
New Features:
- Add system-builder agent for generating custom AI systems
- Add 5 new subagents for system building:
- domain-analyzer: Analyzes domains and recommends architectures
- agent-generator: Generates XML-optimized agent files
- context-organizer: Organizes modular context files
- workflow-designer: Designs workflow definitions
- command-creator: Creates custom slash commands
- Add build-context-system command for interactive system generation
- Add system builder templates and guide
Project Reorganization:
- Move GITHUB_SETTINGS.md to docs/github/
- Move AGENT-SYSTEM-BLUEPRINT.md to docs/features/
- Move CODE_OF_CONDUCT.md to docs/contributing/
- Move CONTRIBUTING.md to docs/contributing/
- Consolidate documentation in docs/ directory
Registry Updates:
- Add system-builder agent to registry
- Add 5 new subagents to registry
- Add build-context-system command to registry
- Update advanced profile to include system builder components
This enables users to generate complete custom AI systems tailored to their domain through an interactive interview process.
- Replace complex auto-scanning with simple validation script
- Prevents registry from being emptied by buggy scan functions
- Auto-scanning feature can be added later after more testing
- Registry now stays intact and works correctly
- Recreate registry.json with all component definitions
- Fix bash 3.2 compatibility (replace ${var^} with awk)
- Registry was accidentally emptied by registration script
- Make codebase-agent work with TypeScript, Python, Go, Rust, and more
- Add clear runtime/type-check/lint command examples for each language
- Update build-agent to support all languages (tsc, mypy, go build, cargo check)
- Make essential-patterns universal by removing language-specific code examples
- Update README to mention multi-language support
- Remove auto-detection overhead - agents naturally adapt based on project files