ZeoCore
ZeoCore is a capability-authoring framework for Python. It gives you a small,
typed base (BaseZeoTool, ToolContext, CapabilityResult) for writing tools
that validate input, do their work, and return a structured, machine-readable
result — plus filesystem, configuration, and integration primitives to support
them.
It is not a CLI, not a task runner, and not an application framework. It is the kernel other things get built on top of: a tool you write against ZeoCore's contracts can run inside any runner that respects them.
Install
pip install zeocore
Optional integrations are available as extras:
pip install "zeocore[google]" # Google Drive + Gmail auth plumbing
pip install "zeocore[drive]" # Google Drive only
pip install "zeocore[gmail]" # Gmail only
pip install "zeocore[notion]" # Notion
pip install "zeocore[pandoc]" # Document conversion via pandoc
pip install "zeocore[llms]" # OpenAI / Anthropic / tiktoken clients
pip install "zeocore[github]" # GitHub integration
pip install "zeocore[http]" # FastAPI-based HTTP adapter
pip install "zeocore[all]" # Everything above except http/dev/lint
dev and lint extras exist too, for contributors — see
CONTRIBUTING.md.
Quick start
from pydantic import BaseModel
from zeo_core.contracts import CapabilityResult
from zeo_core.tools import BaseZeoTool, ToolContext
class GreetRequest(BaseModel):
name: str
class GreetTool(BaseZeoTool):
name = "greet"
version = "1.0.0"
def run(self, request: GreetRequest, ctx: ToolContext) -> CapabilityResult[str]:
return CapabilityResult.ok(data=f"Hello, {request.name}!")
# A runner builds the context and drives the tool; this is what that looks like:
import logging
ctx = ToolContext(
run_id="demo-run-001",
tool_name="greet",
tool_version="1.0.0",
logger=logging.getLogger("greet"),
fs=None,
work_dir="/tmp",
output_dir="/tmp",
)
result = GreetTool().run(GreetRequest(name="World"), ctx)
print(result.data) # "Hello, World!"
For a fuller walkthrough — lifecycle hooks, optional integrations, graceful
degradation when a service isn't configured — see
examples/toolkit_usage.py, or the smaller,
focused examples in examples/:
minimal_tool.py— the smallest possible tool, no mixins, no services.error_handling.py— structured error handling with theZeoErrorfamily.
Each example is runnable as-is: python examples/<name>.py.
What's in the package
zeo_core.tools— the capability-authoring framework itself:BaseZeoTool,ToolContext, and optional mixins (IntegrationEnabledMixin,LifecycleMixin,ToolEnvInitializerMixin).zeo_core.contracts— the data contracts tools speak:CapabilityResult, artifact/manifest models, common enums and IDs.zeo_core.core— filesystem operations (core.fs), path resolution (core.paths), a typed error hierarchy (core.errors), MIME detection, serialization helpers, logging, and a small operation registry.zeo_core.config— YAML/env-var configuration loading and per-tool config models.zeo_core.integrations— adapters for GitHub, Google Drive/Mail, LLM providers (OpenAI/Anthropic), Notion, Pandoc, and a database layer.zeo_core.modules— plugin discovery and explicit-loading registry.zeo_core.prompt— prompt template selection and enhancement utilities.zeo_core.adapters— an optional HTTP adapter (FastAPI-based) for exposing tools over a REST API.
See GET-STARTED.md for a more detailed walkthrough of each area, including configuration file format and error handling patterns.
Contributing
See CONTRIBUTING.md for how to set up a dev environment, run the test/lint/type-check gate, and submit a change. This project follows the Contributor Covenant.
License
MIT — see LICENSE.
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 zeocore-0.1.0.tar.gz.
File metadata
- Download URL: zeocore-0.1.0.tar.gz
- Upload date:
- Size: 592.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c69eca0c9a7744ab8091591c97adcb47ba03b2068c7d768636923f68bb8b3965
|
|
| MD5 |
d7985b4a9e6ea85e6c3066fd957ca04f
|
|
| BLAKE2b-256 |
536f52f43bfb2def755edd3c5c86fd05be0087c583e77c593498bff47993264e
|
Provenance
The following attestation bundles were made for zeocore-0.1.0.tar.gz:
Publisher:
publish.yml on zeroemployeeorg/zeocore
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeocore-0.1.0.tar.gz -
Subject digest:
c69eca0c9a7744ab8091591c97adcb47ba03b2068c7d768636923f68bb8b3965 - Sigstore transparency entry: 2498625043
- Sigstore integration time:
-
Permalink:
zeroemployeeorg/zeocore@9a8b7eb5a499b949f101634f0fad962841ab2b7a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zeroemployeeorg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9a8b7eb5a499b949f101634f0fad962841ab2b7a -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file zeocore-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zeocore-0.1.0-py3-none-any.whl
- Upload date:
- Size: 337.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f27b236b8793efd551d8e83de82466f31b033b2cf47ebe46368d0cd7cb77e5b
|
|
| MD5 |
165f62bad7712ee66b5a3b2f8d2c9295
|
|
| BLAKE2b-256 |
20f1f5bd1ab4a9e3234d3c98892a5cd8aaa8e4cd4d5c4add34b27b896ae32134
|
Provenance
The following attestation bundles were made for zeocore-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on zeroemployeeorg/zeocore
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeocore-0.1.0-py3-none-any.whl -
Subject digest:
1f27b236b8793efd551d8e83de82466f31b033b2cf47ebe46368d0cd7cb77e5b - Sigstore transparency entry: 2498625066
- Sigstore integration time:
-
Permalink:
zeroemployeeorg/zeocore@9a8b7eb5a499b949f101634f0fad962841ab2b7a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zeroemployeeorg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9a8b7eb5a499b949f101634f0fad962841ab2b7a -
Trigger Event:
workflow_dispatch
-
Statement type: