Skip to main content

tamago

Multi-format game archive toolkit.

Requires Python 3.10 or later.

Supported formats

Format Engine Extract Create
XP3 KiriKiri yes yes
DET μ-GameOperationSystem yes yes
GSP AGSD yes yes
ARC AdvHD (WillPlus V2) yes yes

Installation

pip install tamagoarc

To enable TLG image conversion, install with the images extra:

pip install tamagoarc[images]

Usage

tamago CLI

tamago auto-detects archive formats by magic bytes and, for XP3 archives, automatically identifies the correct encryption scheme.

# Identify an archive's format
tamago identify data.xp3

# Extract an archive (auto-detects format and encryption)
tamago extract data.xp3 output_dir

# Use format subcommands for format-specific options
tamago xp3 extract data.xp3 output_dir --encryption hash-xor --key 3
tamago det create source_dir output.det --index-format atm

# Create an archive (format must be specified)
tamago create --format xp3 source_dir output.xp3

Python API

from tamago.formats.xp3 import XP3File

# Extract an archive
with XP3File("data.xp3") as xp3:
    xp3.extract_all("output_dir")

# Extract with explicit encryption
from tamago.formats.xp3.encryption import HashXorEncryption

enc = HashXorEncryption(shift=3)
with XP3File("data.xp3", encryption=enc) as xp3:
    xp3.extract_all("output_dir")

# Auto-detect encryption
from tamago.formats.xp3.detect import auto_detect

enc = auto_detect("data.xp3")
with XP3File("data.xp3", encryption=enc) as xp3:
    xp3.extract_all("output_dir")

# Create an archive
from pathlib import Path

with XP3File("output.xp3", "x") as xp3:
    xp3.write_all(Path("source_dir"))

XP3 Encryption

XP3 archives used by KiriKiri games are often encrypted with a game-specific scheme implemented in a .tpm plugin. tamago supports the encryption used by several games (including automatic detection of the encryption).

If the game you are interested in is not supported, please raise an issue, including a VNDB link to the game.

Development

This project uses Hatch as the build system.

Setup

pip install hatch

Running tests

hatch run test                    # run all tests
hatch run test -k test_name       # run a single test by name
hatch run cov                     # tests + coverage report

Linting and formatting

hatch run lint:style     # check style (ruff + black)
hatch run lint:typing    # type checking (mypy)
hatch run lint:fmt       # auto-format (black + ruff --fix)
hatch run lint:all       # style + typing

License

tamago is distributed under the terms of the MIT license.

Metadata

Release files for tamagoarc 1.1.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 tamagoarc 1.1.0
File Size Uploaded
tamagoarc-1.1.0.tar.gz 232.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tamagoarc 1.1.0
File Interpreter ABI Platform
tamagoarc-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 456.6 kB

Release files / tamagoarc-1.1.0.tar.gz

Download URL tamagoarc-1.1.0.tar.gz
Size 232.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2fec563729cc93d523052833f9d1d1a04935bbdd3b619e7f6936161b555f4511
BLAKE2b-256 checksum
How to use checksums
b43b4887b1bf085b2b1ad8c7f0b389990b634b83269c8387aaa025758fad3f7e
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 20, 2026.

Transparency log

Release files / tamagoarc-1.1.0-py3-none-any.whl

Download URL tamagoarc-1.1.0-py3-none-any.whl
Size 224.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aa8aba8d56d60c6ff0b23db0d1449d0cbaf6b7f7cf6a15e797ce0d85f0cc531
BLAKE2b-256 checksum
How to use checksums
8ed6d29cc79d7f77cf5b85414e9c17702e9b56d6c4c19a53e7cfdb8317bef71e
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 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.1

2 release files

1.0.0

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