Get your wallet documentation automated in 10 minutes.
# Clone and setup
git clone <repo-url>
cd app-tester
cp -r wallets/template wallets/my-wallet
cd wallets/my-wallet
Edit config.yaml:
wallet:
name: "My Wallet"
Open your wallet app, then:
python scripts/record_clicks.py --interactive --setup-crop
What to do:
create_wallet,import_seed)Copy the generated YAML output and paste it into your config.yaml:
documentation:
sections:
setup:
title: "Initial Setup"
description: "Create and configure your wallet"
crop: [100, 100, 800, 600]
coordinates:
create_wallet: [400, 300]
import_seed: [400, 350]
steps:
- name: "Create Wallet"
description: "Click to create a new wallet"
action: "click"
target: "create_wallet"
screenshot: true
Update the section name, titles, and descriptions.
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py
Screenshots are saved to output/staging/my-wallet/
Edit descriptions in config.yaml, then regenerate docs without re-running automation:
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py --docs-only
Documentation is generated to output/staging/ first. Review and approve when ready:
# Review what's staged
python scripts/review.py
# View specific wallet
python scripts/review.py my-wallet
# Approve and publish
python scripts/review.py my-wallet --approve
This moves documentation from output/staging/my-wallet/ → output/my-wallet/ (published).
Edit config.yaml to add:
Then regenerate and re-review:
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py --docs-only
python scripts/review.py my-wallet --approve
In config.yaml:
documentation:
screenshot_max_height: 600 # Adjust as needed
Group steps into logical sections:
sections:
setup:
title: "Initial Setup"
steps: [...]
usage:
title: "Using the Wallet"
steps: [...]
For text input:
- name: "Enter Seed Phrase"
description: "Type your recovery phrase"
action: "type"
value: "your seed words here"
screenshot: true
For loading screens:
- name: "Wait for Sync"
description: "Wait for blockchain sync"
action: "wait"
wait_time: 5
screenshot: true
# Record new coordinates
python scripts/record_clicks.py --interactive --setup-crop
# Run full automation (screenshots + docs)
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py
# Just regenerate docs (fast!)
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py --docs-only
# Run specific sections only
python scripts/run_wallet.py wallets/my-wallet/setup_walkthrough.py --sections setup
--docs-only - Fast iteration on descriptions and formattingcreate_wallet notbutton1setup,usage,advanced keeps it organized# View working example
cat wallets/blindbit/config.yaml
# Run the example
python scripts/run_wallet.py --script wallets/blindbit/config.yaml --sections setup overview sending receiving --docs-only
python scripts/run_wallet.py --script wallets/sparrow/config.yaml --sections setup overview sending sending_contacts --docs-only
# View generated docs
open output/staging/blindbit_desktop/user-guide.md
scale_factor insetup_walkthrough.py (2.0 for Retina displays)record_clicks.pyscreenshot_max_height inconfig.yamlwait_before in step definition--setup-crop to ensure consistent framing| for multi-line stringswallets/blindbit/wallets/template/README.md for all features