Community-contributable integrations (tools) for ModuleX
Project description
modulex-integrations
Community-contributable integrations (tools) for the ModuleX runtime.
Why this repo exists
modulex is a FastAPI/Python backend that, until now, bundled 45
LangChain tool integrations inline. We are extracting those 45 tools
into this standalone, publicly pip-installable package so that:
- adding a new tool is a single-repo PR, not a multi-file edit across the modulex monorepo,
- integration code is publicly inspectable,
- community contributions flow through the standard GitHub PR model.
LLM providers and knowledge providers stay in modulex. Only the
tool integrations migrate here.
Status
Phase 1 — early development. The schema contract and packaging
are in place; integrations themselves will be migrated from the
modulex monorepo one at a time, starting with a github POC and
continuing via a scripted bulk migration. See CHANGELOG.md
for progress and CONTRIBUTING.md for layout rules.
What is this?
Each integration in this package exposes one or more LangChain
@tool functions to the ModuleX runtime, together with credential
metadata (auth schemas, env vars, test endpoints). The runtime
discovers integrations via the Python modulex.tools entry-point
group and loads them at startup.
Installation
pip install modulex-integrations
With every integration's optional dependencies:
pip install "modulex-integrations[all]"
Or only the integrations you need (extras are populated as integrations are migrated):
pip install "modulex-integrations[github,slack]"
Per-integration layout
Every integration ships in the same shape:
src/modulex_integrations/tools/<name>/
├── __init__.py # re-exports manifest + TOOLS
├── manifest.py # IntegrationManifest instance
├── tools.py # LangChain @tool functions
├── outputs.py # pydantic response models (UI/docs derive JSONSchema)
├── dependencies.toml # per-integration runtime deps
├── README.md # 5-section strict template (see CONTRIBUTING.md)
└── tests/
└── test_<name>.py
The contract is enforced by pydantic types in
src/modulex_integrations/schema.py
with extra="forbid" everywhere — a typo in a manifest fails at
import time, not at runtime.
Development
git clone https://github.com/ModuleXAI/modulex-integrations.git
cd modulex-integrations
pip install -e ".[dev]"
pytest
ruff check src tests
mypy src/modulex_integrations
Roadmap
- Phase 1 — bootstrap (this commit). Schema, packaging, CI, community meta files, cross-repo brief workflow.
- Phase 2 — github POC migration. One integration end-to-end:
manifest, tools, outputs, tests, entry point, real
httpx.MockTransportcoverage of at least one action. - Phase 3 — scripted bulk migration. The remaining 44 integrations migrated by a one-shot script, then reviewed individually.
License
MIT — see LICENSE.
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 modulex_integrations-0.5.0.tar.gz.
File metadata
- Download URL: modulex_integrations-0.5.0.tar.gz
- Upload date:
- Size: 989.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 |
46361e6b1682cd54e656c6868fadefd3b7c7da442186f6914077b6ae6082b118
|
|
| MD5 |
60d4b72f0a866663014552520ad5366a
|
|
| BLAKE2b-256 |
3efb987c1e0635716f5b094a2d8d1ece0ef2736c610fbcac80b15f307a94ffd8
|
Provenance
The following attestation bundles were made for modulex_integrations-0.5.0.tar.gz:
Publisher:
release.yml on ModuleXAI/modulex-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modulex_integrations-0.5.0.tar.gz -
Subject digest:
46361e6b1682cd54e656c6868fadefd3b7c7da442186f6914077b6ae6082b118 - Sigstore transparency entry: 1656416773
- Sigstore integration time:
-
Permalink:
ModuleXAI/modulex-integrations@b24c417d1ad314e9190736b84d4bd6190d33fe9d -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/ModuleXAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b24c417d1ad314e9190736b84d4bd6190d33fe9d -
Trigger Event:
push
-
Statement type:
File details
Details for the file modulex_integrations-0.5.0-py3-none-any.whl.
File metadata
- Download URL: modulex_integrations-0.5.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98b81e091c7a8a6767cae3942aa6709d26344074f23dd1327cde4b1ff3d37619
|
|
| MD5 |
673803cdb719ab32300240562b58d28b
|
|
| BLAKE2b-256 |
16f2a86fb58ca01f6abbd51b05e4bdc02a5c89e155e18bd93eecff3c345418dc
|
Provenance
The following attestation bundles were made for modulex_integrations-0.5.0-py3-none-any.whl:
Publisher:
release.yml on ModuleXAI/modulex-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modulex_integrations-0.5.0-py3-none-any.whl -
Subject digest:
98b81e091c7a8a6767cae3942aa6709d26344074f23dd1327cde4b1ff3d37619 - Sigstore transparency entry: 1656417162
- Sigstore integration time:
-
Permalink:
ModuleXAI/modulex-integrations@b24c417d1ad314e9190736b84d4bd6190d33fe9d -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/ModuleXAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b24c417d1ad314e9190736b84d4bd6190d33fe9d -
Trigger Event:
push
-
Statement type: