Local testing
Install your pack directly from its directory:
cognithor pack install ./my-pack/
Then start Cognithor and test your tools:
cognithor --log-level debug
The --log-level debug flag shows pack loading, tool registration, and any errors.
Unit tests
Write tests that mock the PackContext to verify your pack registers correctly:
from unittest.mock import MagicMock
from pack import Pack
from cognithor.packs.interface import PackManifest, PackContext
def test_register_creates_tools():
manifest = PackManifest(
namespace="test", pack_id="test", version="0.1.0",
display_name="Test", description="Test pack",
eula_sha256="0" * 64,
license="apache-2.0", min_cognithor_version=">=0.92.0",
publisher={"id": "test", "display_name": "Test"},
)
mcp = MagicMock()
ctx = PackContext(mcp_client=mcp)
pack = Pack(manifest)
pack.register(ctx)
mcp.register_builtin_handler.assert_called_once()
call_args = mcp.register_builtin_handler.call_args
assert call_args[0][0] == "my_tool_name"
Run tests from your pack directory:
cd my-pack/
python -m pytest tests/ -v
Debugging
| Symptom | Likely cause | Fix |
|---|---|---|
| Pack not loaded | EULA not accepted | cognithor pack accept-eula namespace/pack-id |
| Pack not loaded | Version mismatch | Check min_cognithor_version in manifest |
| Tool not found | register() not wiring tool |
Add register_builtin_handler() call |
| Import error | sys.path missing src/ |
Add sys.path.insert(0, str(Path(__file__).parent / "src")) in pack.py |
Pre-publish checklist
Before submitting your pack:
pack_manifest.jsonis valid (runcognithor pack install ./to check)eula_sha256matcheseula.md(re-compute after any edit)- Version bumped from previous release
toolsandlead_sourcesarrays list all registered names- Unit tests pass
catalog/catalog.mdxwritten with description, screenshots, use cases
Marketplace submission (Q4 2026)
The Cognithor creator marketplace launches in Q4 2026. To submit:
- Push your pack to the
cognithor-packsrepository - CI validates manifest, EULA hash, and runs tests
- Review team checks
catalog/catalog.mdxcontent - Pack goes live on cognithor.ai/packs
Revenue split: 70% creator / 30% platform (configurable in revenue_share).