The OpenShell Python SDK: package openshell on PyPI, a client for the
OpenShell gateway. See CONTRIBUTING.md for tasks and the
release model.
mise run ciruns the full pipeline (format check, lint, type check, proto check, vendored-file check, unit tests, build).mise run proto:genregeneratessrc/openshell/_protofrom core at the ref pinned inOPENSHELL_CORE_REF(mise.toml). Never edit generated files by hand.- Use
uvfor Python commands (uv run,uv sync), neverpipdirectly.
- The SDK supports Python 3.11 and newer. Don't use syntax or standard library features from later versions.
- The public API is what
openshell/__init__.pyexports in__all__. Users also importopenshell._protodirectly, so keep its module paths stable. - Unit tests live in
tests/and are named*_test.py; fixtures go intests/fixtures/. - Files copied from core must stay identical to core at the pin;
mise run vendored:checkcompares them. - New files need only the license line
SPDX-License-Identifier: Apache-2.0in a comment. Keep the existing headers as they are.
- Use Conventional Commits and sign off every commit (
--signoff). - Never mention Claude or any AI agent in commits, pull request descriptions, or issues (no author attribution, no Co-Authored-By, no "Generated with" footers).