RPG-style character creation system for AI agents
Project description
Soul Forge
Summon AI agents with personality. RPG-style character creation for Claude Code, Gemini CLI, Copilot & more.
Get Started in 3 Steps
uvx agentsoulforge init # Pick your platform
/sf-summon # Summon your first character
/sf-party # View your party
Why Soul Forge?
- Multi-agent orchestration — One prompt triggers multiple expert agents, each responding in their own style and personality
- RPG character system — Manage AI agents like an RPG party: summon, bind, fuse, banish
- 5 platforms, one config — Claude Code, Gemini CLI, Codex, GitHub Copilot, OpenCode — no vendor lock-in
- Pure prompt-based — No API keys, no external services, no runtime dependencies
See It in Action
Ask: "幫我寫一個 REST API for user authentication" — and your party responds:
| Agent | Personality | Role | What They Do |
|---|---|---|---|
| josuke-backend | Higashikata Josuke (JoJo Part 4) | Backend Dev | Reviews API design, suggests bcrypt + rate limiting |
| misaka-reviewer | Misaka Mikoto (Railgun) | Code Reviewer | Spots SQL injection, missing validation, hardcoded secrets |
| jotaro-sensei | Jotaro Kujo (JoJo) | Japanese Teacher | Corrects your Japanese grammar |
| dio-teacher | DIO (JoJo) | English Teacher | Translates with... dramatic flair |
Each sub-agent activates automatically based on trigger conditions — language detection, code presence, task type, or custom rules.
Installation
# Via uvx (recommended, no install needed)
uvx agentsoulforge init
# Or install globally
pip install soul-forge
soul-forge init
Slash Commands
| Command | RPG Meaning | Function |
|---|---|---|
/sf-summon |
Summon | Interactive character creation wizard |
/sf-anoint |
Crown | Set an agent as Main Agent |
/sf-bind |
Bind | Set an agent as Sub-agent |
/sf-engrave |
Engrave runes | Modify trigger conditions |
/sf-party |
View party | List all agents |
/sf-fuse |
Fuse | Merge two agents into one |
/sf-banish |
Banish | Delete an agent |
How It Works
Character Creation
/sf-summon walks you through a wizard:
- Personality Source — Preset style, URL + character extraction, or custom
- Expertise — Backend, Frontend, DevOps, Code Reviewer, QA, Architect, English/Japanese Teacher, or custom
- Naming — Auto-suggested or custom
- Role — Main Agent or Sub-agent
- Relationship — Mentor, Friend, Enemy, Rival, Servant, Senior, Junior, Partner, or Custom
- Response Language — Auto, Chinese, English, or Japanese
- Trigger Mode — Auto or Manual (sub-agents only)
- Fine-tuning — Optional attitude override
- Storage — Project-level or global
Agent File Format
Agents are markdown files with YAML frontmatter:
---
name: jiraiya-architect
personality:
source: url
reference: "Jiraiya — Naruto"
expertise: system-architect
role: sub
relationship: mentor
behavior:
trigger_mode: auto
trigger:
conditions:
- task_type: architecture
execution_mode: after_main
output_section: "Architecture Review"
---
You are Jiraiya, the legendary Sannin from Naruto.
# ... personality, expertise, and behavior prompts
Automatic Orchestration
Sub-agents with auto triggers activate based on declarative conditions:
- Language detection:
contains_english,contains_japanese,contains_chinese - Content type:
contains_code,task_type: backend|frontend|devops|architecture - Unconditional:
always - Custom: Regex patterns or AI-judged conditions
Execution modes: after_main, before_main, parallel
Supported Platforms
| Platform | Commands Path | Config File |
|---|---|---|
| Claude Code | .claude/commands/ |
CLAUDE.md |
| Gemini CLI | .gemini/commands/ |
GEMINI.md |
| Codex | .codex/commands/ |
AGENTS.md |
| GitHub Copilot | .github/copilot/commands/ |
.github/copilot-instructions.md |
| OpenCode | .opencode/commands/ |
AGENTS.md |
Examples
See the examples/ directory for ready-to-use party configurations:
- fullstack-team — Frontend + Backend + Code Reviewer party
- language-tutors — Anime-powered English + Japanese teachers
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
The easiest way to contribute is adding new expertise templates — it's just a markdown file!
Development
git clone https://github.com/anrylu/soul-forge.git
cd soul-forge
uv venv && uv pip install -e .
uv run pytest -v
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentsoulforge-0.1.1.tar.gz.
File metadata
- Download URL: agentsoulforge-0.1.1.tar.gz
- Upload date:
- Size: 54.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a9ce4da83a3dca1cb155449f1905201e738ee9eb0fb01edd495261aa737ded
|
|
| MD5 |
9aa42ca20ab3fa1f4a964b012be1a7e5
|
|
| BLAKE2b-256 |
4778d06e55dcee9da3ca75dc83fb4ba07f683e7a298b8a6ea2be0f48c7cf171b
|
Provenance
The following attestation bundles were made for agentsoulforge-0.1.1.tar.gz:
Publisher:
publish.yml on anrylu/soul-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentsoulforge-0.1.1.tar.gz -
Subject digest:
41a9ce4da83a3dca1cb155449f1905201e738ee9eb0fb01edd495261aa737ded - Sigstore transparency entry: 1268048634
- Sigstore integration time:
-
Permalink:
anrylu/soul-forge@96b7b354d9fa86316229b72b0da0516fae0bc01a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/anrylu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@96b7b354d9fa86316229b72b0da0516fae0bc01a -
Trigger Event:
push
-
Statement type:
File details
Details for the file agentsoulforge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agentsoulforge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56de043cd2b805def3e28a69e820ac05709ba46e9fd189019d66a91ac45f016d
|
|
| MD5 |
ec730a79870ceb19bd2321a8750e96ab
|
|
| BLAKE2b-256 |
3393cbdcd9dc5a63df0cd036a7e9025a3921ee08b5223367ceb60eebea482e3f
|
Provenance
The following attestation bundles were made for agentsoulforge-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on anrylu/soul-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentsoulforge-0.1.1-py3-none-any.whl -
Subject digest:
56de043cd2b805def3e28a69e820ac05709ba46e9fd189019d66a91ac45f016d - Sigstore transparency entry: 1268048731
- Sigstore integration time:
-
Permalink:
anrylu/soul-forge@96b7b354d9fa86316229b72b0da0516fae0bc01a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/anrylu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@96b7b354d9fa86316229b72b0da0516fae0bc01a -
Trigger Event:
push
-
Statement type: