README
¶
ToolHive developer guide
The ToolHive development documentation provides guidelines and resources for developers working on the ToolHive project. It includes information on setting up the development environment, contributing to the codebase, and understanding the architecture of the project.
For user-facing documentation, please refer to the ToolHive docs website.
Contents
Explore the contents of this directory to find more detailed information on specific topics related to ToolHive development including architectural details and design proposals.
For information on the ToolHive Operator, see the ToolHive Operator README and DESIGN doc.
Getting started
ToolHive is developed in Go. To get started with development, you need to install Go and set up your development environment.
Prerequisites
-
Go: ToolHive requires Go 1.24. You can download and install Go from the official Go website.
-
Task (Recommended): Install the Task tool to run automated development tasks. You can install it using Homebrew on macOS:
brew install go-task
Building ToolHive
To build the ToolHive CLI (thv
), follow these steps:
-
Clone the repository: Clone the ToolHive repository to your local machine using Git:
git clone https://github.com/stacklok/toolhive.git cd toolhive
-
Build the project: Use the
task
command to build the binary:task build
-
Run ToolHive: The build task creates the
thv
binary in the./bin/
directory. You can run it directly from there:./bin/thv
-
Optionally, install the
thv
binary in yourGOPATH/bin
directory:task install
Running tests
To run the linting and unit tests for ToolHive, run:
task lint
task test
ToolHive also includes comprehensive end-to-end tests that can be run using:
task test-e2e
Other development tasks
To see a list of all available development tasks, run:
task --list
Note on EXPERIMENTAL features
From time to time, ToolHive may include features marked as EXPERIMENTAL. These features are not yet fully stable and may be subject to change or removal in future releases. They are provided for early testing and feedback.
Contributing
We welcome contributions to ToolHive! If you want to contribute, please review the contributing guide.
Contributions to the user-facing documentation are also welcome. If you have suggestions or improvements, please open an issue or submit a pull request in the docs-website repository.