Swarmauri is a composable intelligence infrastructure SDK for building typed, pluggable Python systems. The repository contains the public swarmauri namespace package, interface contracts, reusable base classes, standard components, community integrations, plugin packages, and package-level documentation for independently installable Swarmauri distributions.
Swarmauri separates component contracts from implementations so applications can compose agents, tools, models, parsers, vector stores, signing components, key providers, transports, middleware, billing providers, and storage adapters without locking every workflow to one provider package. The namespace package gives users stable imports while individual packages keep dependencies focused.
A: Install swarmauri when you want the public namespace, plugin discovery, and curated optional dependency groups.
A: Start with swarmauri_core for interfaces, then use swarmauri_base when the implementation needs serialization, component registration, and reusable base behavior.
A: Use swarmauri_standard for first-party standard components, or install a focused community, plugin, or standards package for a specific provider or component kind.
A: Swarmauri package metadata and badges target Python 3.10, 3.11, 3.12, 3.13, and 3.14.
- Stable
swarmauri.*namespace imports through the namespace package. - Interface-first package architecture through
swarmauri_core. - Pydantic-backed base classes, serialization helpers, and dynamic component registration through
swarmauri_base. - First-party standard components through
swarmauri_standard. - Independently installable community, plugin, experimental, and standards packages.
- Component families for agents, chains, conversations, documents, embeddings, LLMs, parsers, prompts, schema converters, tools, toolkits, vector stores, signing, crypto, key providers, transports, middleware, storage, XMP, billing, and more.
- Python 3.10, 3.11, 3.12, 3.13, and 3.14 support.
Install the namespace package with uv:
uv add swarmauriInstall it with pip:
pip install swarmauriInstall the broader curated component bundle:
uv add "swarmauri[full]"
pip install "swarmauri[full]"Install only foundational packages when building components:
uv add swarmauri_core swarmauri_base
pip install swarmauri_core swarmauri_baseInstall focused packages when you only need one component family:
uv add swarmauri_vectorstore_pinecone
uv add swarmauri_tool_jupyterexportlatex
uv add swarmauri_signing_ed25519Importing swarmauri activates namespace discovery for installed components:
import swarmauri
from swarmauri.interface_registry import InterfaceRegistry
from swarmauri.plugin_citizenship_registry import PluginCitizenshipRegistry
print(len(InterfaceRegistry.list_registered_namespaces()))
print(len(PluginCitizenshipRegistry.total_registry()))Use the namespace package for stable public imports after the implementation package is installed:
import swarmauri
from swarmauri.signings.Ed25519EnvelopeSigner import Ed25519EnvelopeSigner
signer = Ed25519EnvelopeSigner()
print(signer.type)Use direct package imports when you want the narrowest dependency surface:
from swarmauri_standard.documents import Document
from swarmauri_standard.tools import AdditionTool
doc = Document(content="Direct package import")
tool = AdditionTool()
print(doc.type)
print(tool("2+2"))Discover registered component mappings:
from swarmauri.plugin_citizenship_registry import PluginCitizenshipRegistry
for public_path, module_path in list(PluginCitizenshipRegistry.total_registry().items())[:10]:
print(public_path, "->", module_path)Use dynamic component serialization from swarmauri_base:
from typing import Literal
from pydantic import BaseModel
from swarmauri_base.ComponentBase import ComponentBase
from swarmauri_base.DynamicBase import SubclassUnion
@ComponentBase.register_model()
class ConnectorBase(ComponentBase):
type: Literal["ConnectorBase"] = "ConnectorBase"
label: str
@ComponentBase.register_type(ConnectorBase, "ApiConnector")
class ApiConnector(ConnectorBase):
type: Literal["ApiConnector"] = "ApiConnector"
endpoint: str
class ConnectorSpec(BaseModel):
connector: SubclassUnion[ConnectorBase]
spec = ConnectorSpec.model_validate_json(
'{"connector":{"type":"ApiConnector","label":"primary","endpoint":"https://api.example.test"}}'
)
assert isinstance(spec.connector, ApiConnector)Foundational packages:
- swarmauri provides the namespace importer and plugin discovery layer.
- swarmauri_core provides interface contracts and shared types.
- swarmauri_base provides reusable base classes, serialization helpers, and component registration behavior.
- swarmauri_standard provides first-party standard components.
- swarmauri_typing provides dynamic typing utilities used by Swarmauri base classes.
Repository package areas:
pkgs/core,pkgs/base,pkgs/typing, andpkgs/swarmauricontain foundational packages.pkgs/swarmauri_standardcontains first-party standard components.pkgs/communitycontains community-maintained packages and provider integrations.pkgs/pluginscontains plugin packages.pkgs/standardscontains standard-interface and standards-oriented packages.pkgs/experimentalcontains early-stage packages.
Common package families:
swarmauri_vectorstore_*packages provide vector database integrations.swarmauri_embedding_*packages provide embedding model integrations.swarmauri_tool_*packages provide task-specific tools.swarmauri_parser_*packages provide parsing utilities.swarmauri_signing_*packages provide signing implementations.swarmauri_keyprovider_*packages provide key-management implementations.swarmauri_billing_*packages provide billing provider implementations and stubs.
Security and signing packages:
- swarmauri_signing_ed25519
- swarmauri_signing_jws
- swarmauri_crypto_composite
- swarmauri_keyprovider_inmemory
Runtime and infrastructure packages:
Billing provider packages:
- swarmauri_billing_adyen
- swarmauri_billing_authorize_net
- swarmauri_billing_braintree
- swarmauri_billing_paypal
- swarmauri_billing_stripe
- Dynamic schemas guide
- Swarmauri namespace call flow
- Swarmauri citizenship notes
- Contribution guide
- Style guide
- Package index
Create component packages with direct instantiation in mind. Plugins should expose clear package-level imports, use the relevant swarmauri_core interface and swarmauri_base base class, document installation and usage, and register entry points where namespace discovery is expected.
[project.entry-points.'swarmauri.vectorstores']
YourVectorStore = "swarmauri_vectorstore_yourplugin:YourVectorStore"from typing import Literal
from swarmauri_base.ComponentBase import ComponentBase
from swarmauri_base.vector_stores.VectorStoreBase import VectorStoreBase
@ComponentBase.register_type(VectorStoreBase, "YourVectorStore")
class YourVectorStore(VectorStoreBase):
type: Literal["YourVectorStore"] = "YourVectorStore"The Swarmauri SDK is licensed under the Apache License 2.0. See the LICENSE file for details.
