Metadata-Version: 2.5
Name: ohkit
Version: 0.1.0
Summary: A unified Python programming interface for agent harnesses.
Project-URL: Homepage, https://ohkit.wh1isper.top
Project-URL: Documentation, https://ohkit.wh1isper.top
Project-URL: Repository, https://github.com/Wh1isper/ohkit
Project-URL: Issues, https://github.com/Wh1isper/ohkit/issues
Author: Converge AI Labs
Maintainer: Wh1isper
License-Expression: MIT AND Apache-2.0
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
License-File: third-party/codex/LICENSE
License-File: third-party/codex/NOTICE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.13
Requires-Dist: agent-client-protocol<0.13,>=0.12.1
Requires-Dist: claude-agent-sdk<0.3,>=0.2.165
Requires-Dist: pydantic<3,>=2.12
Requires-Dist: websockets<16,>=15
Description-Content-Type: text/markdown

# ohkit

A unified Python programming interface for agent harnesses.

## Status

ohkit is a pre-alpha Python library. This checkout implements typed asynchronous Thread/Run execution and a concrete Codex app-server control backend: streaming, result-only execution, active steering, cancellation, native history resume/fork, and typed approvals/questions. It also supplies typed Workspace I/O and an application-hosted Codex executor for new Threads in explicitly unsandboxed mode. Stable ACP execution includes negotiated history continuation, native permission choices, and optional Workspace text/terminal callbacks. Ordinary Claude execution uses the official SDK, with history continuation and approval handling but no Workspace bridge. Neither new adapter advertises steering or fork. Earlier published bootstrap releases expose metadata only; these source capabilities are not a claim of a new release.

The repository, Python distribution, and import package are all named `ohkit`. Python 3.13 or newer is required. Both owned stdio control and connections to caller-owned WebSocket services are available in the default installation. Codex must be installed separately and configured for its native model provider.

The [architecture specifications](spec/README.md) own the execution model and Workspace boundary. The [getting-started guide](docs/getting-started.md) and [Codex guide](docs/codex.md) describe runnable source APIs and the tested native version, rather than promising compatibility with every upstream release.

## Quick start

Install this checkout with `python -m pip install .`, then use a configured Codex executable on `PATH`:

```python
import asyncio

from ohkit.backends.codex import Codex


async def main() -> None:
    async with Codex() as backend:
        thread = await backend.new_thread(cwd="/path/to/project")
        result = await thread.run("Explain the project without changing files.")
        print(result.outcome, result.output)


asyncio.run(main())
```

The native harness owns tools, filesystem access, sandbox policy, and credentials. Entering `Codex()` owns one stdio app-server process; it is not a portable Workspace or application sandbox.

For application-supplied file/process I/O, see [Workspace](docs/workspace.md) and the [authenticated hosting example](docs/examples/application-hosted-executor.md). The bridge borrows the provider; your application owns routing, authorization, and the listener. External executor history resume/fork is not supported by the pinned native protocol.

## Development

```bash
git clone https://github.com/Wh1isper/ohkit.git
cd ohkit
make install
make check-all
```

See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution and validation rules, [DEVELOPMENT.md](DEVELOPMENT.md) for engineering standards, and [spec/README.md](spec/README.md) for accepted contracts.

## Documentation

- [Documentation index](docs/index.md)
- [Documentation build and deployment](docs/documentation.md)
- Canonical site: [ohkit.wh1isper.top](https://ohkit.wh1isper.top/)
- [Release procedure](docs/releasing.md)
- [Security policy](SECURITY.md)

## License

Original ohkit code is under the [MIT License](LICENSE). Generated Codex protocol code also carries Apache-2.0 terms; see [third-party notices](THIRD_PARTY_NOTICES.md). The distribution's license expression is `MIT AND Apache-2.0`.
