Click Use this template -> Create a new repository and finish the set up process.
Clone the resulting repository
git clone <your-github-url-here>
Recommended: Install UV and run:
uv venv
Alternatively, use the built-in virtual environment:
python -m venv .venv
Activate the new environment for Mac/Linux:
source .venv/bin/activate
or for Windows:
.venv\Scripts\activate
Pick a name for your node, and update the package directory name in src/, node_name in config.py, and name in pyproject.toml. This name should be all lowercase letters separated by hyphens (or underscores for the package name in src/).
Set the node description, author fields, and project URL in the pyproject.toml.
This will install your node in editable mode, reflecting changes as you edit the source code.
uv pip install --editable .
or
pip install --editable .
Rename .env.example to .env and set a password to encrypt the node's private key. Make sure that this file IS NOT committed by git.
python -m koi_net_<YOUR_NODE_NAME>_node
This repo comes with a workflow to publish to PyPI. You'll need a PYPI account linked to your GitHub account, and first follow this tutorial to set up a project configured for deployment.
Once you have a project page, update the URL on line 38 of .github/workflows/publish-to-pypi.yml. Now whenever a tag is created of the form v*.*.* that commit will automatically be published to PyPI. Make sure that the version specifier in pyproject.toml matches the version in the tag you are using.
Take a look at the koi-net repo for documentation about the koi-net package and developing nodes. This template provides the basic structure for a full node setup. You'll likely want to start by modifying config.py with the RID types your node deals with, and adding your own knowledge handlers (see example in custom_handler.py).
This template doesn't contain any license by default. If you add a LICENSE file, make sure to update your pyproject.toml with the following line:
license = {file = "LICENSE"}