The Summoner Core SDK is the foundation of the Summoner protocol, providing a minimal, composable runtime for building and coordinating autonomous agents.
This core SDK exposes the hooks, communication layer, and execution model needed to support decentralized identities, reputation-aware messaging, programmable automations, and orchestration.
The core codebase is thoroughly documented in our official documentation, available on our GitHub page here.
Before running the platform, ensure that both Python and Rust are installed on your system. The setup.sh script will then take care of configuring the environment and compiling necessary components.
The platform requires Python 3.9+. You can check if Python is installed using:
python3 --versionIf it is not installed, download it from the official Python website or install via your package manager.
brew install pythonsudo apt update
sudo apt install python3 python3-venv python3-pipThe Rust-based servers depend on a working installation of the Rust toolchain.
Install Rust using rustup:
brew install rustup
rustup-initcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shAfter installation, restart your terminal and verify:
rustc --version # ✅ Should print the Rust compiler version
cargo --version # ✅ Should print the Cargo package manager versionOnce Python and Rust are installed, git clone the default branch, for example by using
git clone https://github.com/Summoner-Network/summoner-core.gitand initialize the project environment by running:
source setup.shThis script performs the following actions:
- Creates a Python virtual environment in the root directory (
venv) - Installs required Python packages listed in
requirements.txt - Generates a default
.envfile with configuration placeholders - Installs all available Rust server implementations, using
Cargo.lockto ensure consistent builds - Installs the
summonerfolder as a Python package in editable mode, enabling clean imports likefrom summoner.server import *without modifyingPYTHONPATH
The .env file defines key runtime parameters such as logging and database connection. You may need to adjust it to match your local setup:
# .env
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
SECRET_KEY=supersecretAfter editing .env, make sure these values are correctly read by the Python settings module (summoner/settings.py). It uses os.getenv() to load defaults:
# summoner/settings.py
DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///local.db")
SECRET_KEY = os.getenv("SECRET_KEY", "devsecret")At this point, your development environment should be fully configured and ready to use. You can now launch a server or run clients to explore and test the code.
Use the ready-made scripts open_server.sh and open_client.sh in the repo root to verify your install.
POSIX (macOS/Linux)
# terminal A
source venv/bin/activate
bash open_server.sh
# terminal B
source venv/bin/activate
bash open_client.shWindows Use Git Bash (or WSL). Activate the venv then run the scripts with Bash:
source venv/Scripts/activate
bash ./open_server.sh # terminal A
bash ./open_client.sh # terminal BIf needed: chmod +x open_server.sh open_client.sh.
Expected
Server starts and listens and client connects and can send messages through a chat interactive window. If anything fails, re-run source setup.sh and try again.
This repository is open source for visibility and usage. External developers are welcome to open issues to report bugs, suggest improvements, or request new features.
Direct code contributions to this repository are limited to internal team members.
If you would like to extend the project, we encourage you to explore our documentation on building modules and to use the SDK template repository as a starting point for creating safe, compatible extensions.
