Add support for store directory paths provided as strings, in addition
to the existing path type check for directories.
Context: certain project will include a `SKILL.md` file, and instead of
managing them via some 3rd party manager or manually, why not include
them from the source itself! I implemented this in my setup, since I
wanted to include the `SKILL.md` file from the
[beads](https://github.com/steveyegge/beads) project.
Add configuration options for the opencode web service including host,
port, mDNS, logging, and CORS settings. Implement systemd user service
to run the web server with configurable parameters.
Adds support for custom tools - user-defined functions that the LLM can
call during conversations. Custom tools work alongside opencode's built-in
tools and are configured through the new `tools` option.
The configuration follows the same pattern as other opencode settings like
`agents` and `commands`, supporting:
- Inline TypeScript content
- Individual file paths
- Bulk directory imports
The `commands`, `agents`, and `themes` options now accept either an
attribute set (existing behavior) or a path to a directory containing
multiple files. When a directory path is provided, it is symlinked to
the appropriate `$XDG_CONFIG_HOME/opencode/` subdirectory.
This change aligns with the existing `skills` option implementation and
provides a more convenient way to manage multiple configuration files
without needing to define each one individually in Nix.
Adds support for OpenCode Agent Skills by managing skill definitions
under "/opencode/skill/<name>/SKILL.md" via `programs.opencode.skills`.
Documentation: https://opencode.ai/docs/skills/
Replace the use of `~` in the documentation for the command and agent
settings with the `XDG_CONFIG_DIR` environment variable to avoid
ambiguity about the config directory. Also switch to the
`{file}` path macro so paths render correctly in the docs and tooling.
Opencode can support loading agents/commands from files in the config
folder. This allows re-using the same agents/commands between different
coding assistants easier than trying to fit their structured json
configuration.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
- Automatically include "$schema": "https://opencode.ai/config.json" in the generated
opencode config.json file
- Update documentation to mention the added schema property
- Add corresponding "$schema" entry in test config.json file for validation purposes
Closes#7506
- Introduce `rules` option to provide global custom instructions for opencode
- Write `rules` content to `~/.config/opencode/AGENTS.md` if non-empty
- Update tests to cover presence and absence of `AGENTS.md` file with rules content