Metadata-Version: 2.4
Name: vibesketch
Version: 0.6.3
Summary: 2D chemical structure and reaction sketcher that renders publication graphics and writes vibe-qc and ORCA inputs
Author-email: "Michael F. Peintinger" <mpei@vibe-qc.com>
License-Expression: MPL-2.0
Project-URL: Homepage, https://vibe-qc.com
Project-URL: Documentation, https://vibe-qc.com/vibe-sketch/docs/
Keywords: chemistry,structure editor,reaction scheme,sketcher,quantum chemistry,orca,cheminformatics,rdkit
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1
Requires-Dist: pydantic>=2.7
Requires-Dist: fastapi>=0.115
Requires-Dist: uvicorn>=0.30
Requires-Dist: rdkit>=2024.9
Requires-Dist: numpy>=1.26
Provides-Extra: queue
Requires-Dist: vibe-queue>=0.26.10; extra == "queue"
Provides-Extra: qvf
Requires-Dist: qvf-writer[numpy,validate]>=0.6; extra == "qvf"
Provides-Extra: view
Requires-Dist: vibeview>=2.20; extra == "view"
Provides-Extra: publication
Requires-Dist: resvg_py==0.5.0; extra == "publication"
Requires-Dist: svg2pdf-py==1.1.0; extra == "publication"
Provides-Extra: opsin
Requires-Dist: py2opsin==1.2.0; extra == "opsin"
Provides-Extra: all
Requires-Dist: vibesketch[publication]; extra == "all"
Requires-Dist: vibesketch[opsin]; extra == "all"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: httpx>=0.27; extra == "test"
Requires-Dist: pyyaml>=6; extra == "test"
Requires-Dist: jsonschema>=4.20; extra == "test"
Provides-Extra: browser
Requires-Dist: playwright==1.64.0; extra == "browser"
Requires-Dist: pyee==14.0.0; extra == "browser"
Requires-Dist: greenlet==3.5.6; extra == "browser"
Provides-Extra: dev
Requires-Dist: ruff==0.17.0; extra == "dev"
Requires-Dist: mypy==2.4.0; extra == "dev"
Provides-Extra: release
Requires-Dist: build<2,>=1.2; extra == "release"
Requires-Dist: twine<7,>=6.2; extra == "release"
Provides-Extra: docs
Requires-Dist: vibesketch; extra == "docs"
Requires-Dist: sphinx>=7.4; extra == "docs"
Requires-Dist: myst-parser>=4.0; extra == "docs"
Requires-Dist: linkify-it-py>=2; extra == "docs"
Requires-Dist: furo>=2024.5; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Requires-Dist: sphinx-design>=0.6; extra == "docs"
Dynamic: license-file

# vibe-sketch

A 2D chemical structure and reaction sketcher that renders publication
graphics and writes ready-to-run inputs for vibe-qc and ORCA. It runs in the
browser and as a desktop app, and everything the browser can do is reachable
through a Python SDK, a command line, a REST API and an MCP server, so agents
can draw and compute too.

vibe-sketch is a companion to [vibe-qc](https://github.com/vibe-qc/vibe-qc),
[vibe-view](https://github.com/vibe-qc/vibe-view) and
[vibe-queue](https://github.com/vibe-qc/vibe-queue), and works without them.

## Status

Testing version. In the browser, draw or import structures, reactions and
mechanisms, clean them up, read each species' properties and checked name,
generate 3D structures, write vibe-qc and ORCA inputs, save documents as QVF
(the vibe family's format), and export SVG, PNG, MOL, SDF, RXN, SMILES and
InChI; the same works from the command line, the REST API and, for agents,
MCP. With vibe-queue installed and configured, submit those inputs and follow
or cancel runs from the app or API. The Electron desktop shell runs the same
app in a native window, with a source launcher and runtime installer already
available. Public release packages and remaining desktop features are tracked
separately in the [desktop guide](docs/desktop.md) and the
[roadmap](docs/roadmap.md). The guide covers first-run Python setup, files,
updates and packaged-app acceptance. QVF saving needs the optional qvf-writer integration;
without it, documents save as `.vsk`.

## Try it

```sh
./scripts/install.sh
.venv/bin/vibe-sketch serve --open
```

Python 3.12 or newer; Node.js 22 or newer to build the browser app. The
[quickstart](docs/quickstart.md) walks through drawing, 3D preparation, input writing, submission
and desktop startup, and [`docs/installation.md`](docs/installation.md) covers the
options. For common startup, import, export and calculation-preparation
problems, see [troubleshooting](docs/troubleshooting.md).

## Find the right guide

| Goal | Start here |
|---|---|
| Learn the drawing workflow | [Illustrated tutorials](docs/tutorials.md) |
| Reproduce a complete example | [Runnable examples](docs/examples.md) |
| Automate file preparation | [CLI](docs/cli.md) or [Python SDK](docs/python_api.md) |
| Work on the same document as a human | [REST API](docs/rest.md) or [MCP tools](docs/agents.md) |
| Choose an exchange format | [Format support and limitations](docs/formats.md) |
| Develop or update documentation | [Contributor setup](CONTRIBUTING.md) and [working rules](AGENTS.md) |
| Report a security problem | [Security policy](SECURITY.md) |

## Licence

vibe-sketch is licensed under the Mozilla Public License 2.0 (MPL-2.0); see
[`LICENSE`](LICENSE) and the [third-party notices](docs/license.md). This is
the same project licence as vibe-qc, vibe-view and vibe-queue. QVF is a
separate Apache-2.0 project. Public source and installer publication are
separate release steps; consult the installation guide for available routes.
