future-healthcare-cli
Python library and optional CLI for Future Healthcare.
The CLI helps with common refund flows:
loginstores your API token locallychecklists refund status/historynifslooks up known refund addresses for a business NIFsubmitsubmits a new expense with receipt metadata
Install
Install the CLI with uv:
uv tool install 'future-healthcare[cli]'
This makes the future-healthcare command available on your system.
Run Without Installing
You can also run it directly with uvx:
uvx --from 'future-healthcare[cli]' future-healthcare --help
Usage
Log in first:
future-healthcare login -u YOUR_USERNAME -p YOUR_PASSWORD
Check existing refunds:
future-healthcare check
Look up the available addresses for a business NIF:
future-healthcare nifs 509876543
This prints one building per line as Building Name (address).
Submit a receipt by passing the required fields explicitly:
future-healthcare submit ~/Downloads/example-receipt.pdf \
--business-nif 509876543 \
--invoice-number 'INV 2026/0001' \
--total-amount 40 \
--date '2026-03-14'
The submit command may prompt you to choose the insured person, service, or building when multiple matches are available.
Use --building to select a building/address up front for non-interactive runs. Pass only the building name from
future-healthcare nifs, not the address in parentheses.
Receipt data extraction happens before calling the CLI. Agent users can use the bundled Codex skill in
.agents/skills/future-healthcare-cli/SKILL.md to inspect the receipt, extract the required fields, and then run
future-healthcare submit with explicit flags.
Configuration
The CLI reads defaults from ClassyClick's default config.toml location.
You can inspect the active configuration and its file path with:
future-healthcare config
To edit it in $VISUAL or $EDITOR:
future-healthcare config --edit
Configuration mirrors the CLI command options:
[submit]
service = "Dentist"
[login]
username = "YOUR_USERNAME"
You can also keep multiple environments in the same file and select one with --env:
default_env = "personal"
[submit]
service = "Dentist"
[env.personal.submit]
person = "Alice"
[env.work.submit]
person = "Bob"
Then run:
future-healthcare --env work submit ~/Downloads/example-receipt.pdf \
--business-nif 509876543 \
--invoice-number 'INV 2026/0001' \
--total-amount 40 \
--date '2026-03-14'
Use group-level path flags when you want local state somewhere else:
future-healthcare --token-path ~/.future-healthcare/token.txt --log-dir ~/.future-healthcare/logs login \
-u YOUR_USERNAME \
-p YOUR_PASSWORD
Local Data
By default, the CLI stores local state next to the selected configuration file, including:
token.txtfor the login tokenconfig.tomlfor CLI defaultslogs/for submission logs and copied input files
Development
See CONTRIBUTING.md.
Metadata
Release files for future-healthcare 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| future_healthcare-0.0.8.tar.gz | 28.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| future_healthcare-0.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.5 kB
Release files / future_healthcare-0.0.8.tar.gz
| Download URL | future_healthcare-0.0.8.tar.gz |
|---|---|
| Size | 28.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34693d092045ed45626e2b36fc653e65c6a5a6ea4f3969fbfee1582a0426b19f
|
|
BLAKE2b-256 checksum How to use checksums |
83c58d80302aae8c8db6291df30bd45884e654d6ba0b88266c949a332ca92c23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.16
|
Release files / future_healthcare-0.0.8-py3-none-any.whl
| Download URL | future_healthcare-0.0.8-py3-none-any.whl |
|---|---|
| Size | 23.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87b06d9a458c59fb8990c6c04362a85078fc3f6a8bc1caaa1aed2b1d7778bac4
|
|
BLAKE2b-256 checksum How to use checksums |
d257948b667e373e1898b4ae37a0077193040987be8d84ff24baa657e1ccd81d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.16
|