Skip to main content

vitruvian-tool-kit

Write a tool for the Vitruvian Mac app in Python. A tool is a folder with a vitruvian-tool.json and a program; the app starts the program and talks to it over its standard input and output. This kit is that conversation: you say what each command does, and call the app from inside a command as an ordinary function call.

from vitruvian_tool_kit import Tool

tool = Tool(version="0.1.0")


@tool.command("hello")
def hello(app):
    app.notify.hud(icon="hand.wave", message="Hello")


tool.run()
  • One call per message. app.notify.hud(...), app.clipboard.read_text(), app.storage.get(key=...): each is one request of the protocol, named as the protocol names it. The app may refuse any of them; the call then raises Refusal. Raise CommandRefused("why") to refuse a command yourself.
  • Synchronous, on one thread. A call to the app waits for its answer, ten seconds at most. A handler must not be async.
  • Never print. Standard output is the link to the app. Write to standard error, or call app.log(message=...).

Shipping it

The app starts a tool with Apple's python3 (/usr/bin/python3, Python 3.9), which has none of your packages. So the kit goes inside the tool's folder, and the program finds it there:

python3 -m pip install --target lib vitruvian-tool-kit
import os, sys

HERE = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(HERE, "..", "lib"))

vitruvian-tool init --template python-kit writes a tool set up this way. The kit needs nothing but the standard library and Python 3.9 or later.

The whole guide, the protocol and the other kits are in the SDK. MIT licence.

Metadata

Release files for vitruvian-tool-kit 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vitruvian-tool-kit 0.10.0
File Size Uploaded
vitruvian_tool_kit-0.10.0.tar.gz 20.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vitruvian-tool-kit 0.10.0
File Interpreter ABI Platform
vitruvian_tool_kit-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.0 kB

Release files / vitruvian_tool_kit-0.10.0.tar.gz

Download URL vitruvian_tool_kit-0.10.0.tar.gz
Size 20.2 kB
Tags Source
SHA-256 checksum
How to use checksums
23ab8c88870fa70ba9c4094dd151fcc180e24bb05f1521daac6f8c79797c6d83
BLAKE2b-256 checksum
How to use checksums
7073da6fa35cd123c2bbb2e56fbb916332737d4df1abfe6da0ce5d0b89e5bfb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / vitruvian_tool_kit-0.10.0-py3-none-any.whl

Download URL vitruvian_tool_kit-0.10.0-py3-none-any.whl
Size 23.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60e780e9767ee4039af986af52b9c04b78628dfad9cb5daa4845e990b4c27374
BLAKE2b-256 checksum
How to use checksums
9fe1bfe4446b845d930b658baba2918cc558eddf1f84b4fe04382ec9f430beb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

This release

0.10.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page