toto
A visual novel script localization tool. toto extracts translatable text from various VN engine script formats, manages translations, and reinserts translated text back into script files.
Supported engines
| Engine | Handler | File types |
|---|---|---|
| KiriKiri | kirikiri |
.ks, .soc |
| DxLib | dxlib |
binary scripts |
| Anim | anim |
.dat |
| mgos (μ-GameOperationSystem) | mgos |
.o |
| AGSD (NicotineSoft) | agsd |
.spt |
| AdvHD (Willplus) | advhd |
.ws2 |
Installation
pip install toto-script-tool
Or for development:
pip install hatch
hatch env create
Usage
Extract
Extract translatable text from script files:
toto extract --filetype=kirikiri path/to/scripts/
Options:
--filetype(required) — engine format (see table above)--outpath— where to write translation files (default:./project/source/)--workpath— where to store intermediate files (default:./working/)--codec— force a specific text encoding--ignore-line-regex— regex pattern to skip matching lines (repeatable)--unwrap— remove inline line breaks from extracted text for re-wrapping on insertion (supported formats:agsd)
Insert
Reinsert translated text into script files:
toto insert --filetype=kirikiri path/to/translations/
Options:
--filetype(required) — engine format--outpath— where to write patched scripts (default:./patch/)--workpath— intermediate file directory (default:./working/)--width— line width for text wrapping (default: 60; supported formats:agsd,kirikiri)--wrap— wrapping mode (supported formats:agsd,kirikiri)--codec— force output encoding--skip-identical— skip files where all translations match the original
Workflow
- Extract translatable text from original scripts. This produces translation files (plain text, one line per string) and intermediate files with placeholder tokens.
- Translate the extracted text files — by hand, with MT, or however you like.
- Insert the translations back. toto substitutes translated text into the intermediate files to produce patched scripts ready for use.
Related tools
tamago can create and extract archive files for VN engines supported by toto, completing the translation workflow: unpack archives with tamago, extract and translate scripts with toto, then repack with tamago.
Adding format handlers
toto uses a plugin system based on Python entry points. To add support for a new engine format:
- Create a handler class that extends
toto.filetypes.TranslatableFile.TranslatableFile - Implement
get_paths(),extract_lines(), andinsert_lines() - Register it as an entry point under
toto.filetypesinpyproject.toml
Development
# Run tests
hatch run test
# Run a specific test
hatch run test -- -k "test_name"
# Lint and format
hatch run lint:style # check
hatch run lint:fmt # auto-format
hatch run lint:typing # mypy
License
MIT
Metadata
Release files for toto-script-tool 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| toto_script_tool-1.0.0.tar.gz | 52.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| toto_script_tool-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.3 kB
Release files / toto_script_tool-1.0.0.tar.gz
| Download URL | toto_script_tool-1.0.0.tar.gz |
|---|---|
| Size | 52.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
67cf050f790a94138e95789a61e63d33100472b11dee0ed6ad7907bbf9e33f1a
|
|
BLAKE2b-256 checksum How to use checksums |
7271930bbe973695087d2db8477bc68892d567a4843eff4f7d5f275ffe587ae3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 18, 2026.
Transparency logRelease files / toto_script_tool-1.0.0-py3-none-any.whl
| Download URL | toto_script_tool-1.0.0-py3-none-any.whl |
|---|---|
| Size | 30.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81126c79e60879b4837106daed130b8981514a88eddd7cbd0f47a6332f642ab6
|
|
BLAKE2b-256 checksum How to use checksums |
fe886d829096e6eaca6fc5fea4f54f9b2e1eb48f51f49461448a5c74309bbdee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 18, 2026.
Transparency log