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 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 | |
|---|---|---|---|
| future_healthcare-1.0.0.tar.gz | 28.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| future_healthcare-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.5 kB
Release files / future_healthcare-1.0.0.tar.gz
| Download URL | future_healthcare-1.0.0.tar.gz |
|---|---|
| Size | 28.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2fadf5717121b041687b37d4ad5324b9927066fc2c005cfc3c1565ea53001861
|
|
BLAKE2b-256 checksum How to use checksums |
0e1a897063a79b03696b6d02c220ef0539e5f3ebcd253702db99e078a5b9045a
|
| 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-1.0.0-py3-none-any.whl
| Download URL | future_healthcare-1.0.0-py3-none-any.whl |
|---|---|
| Size | 23.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f59b68f7942bca20f977771de1f4f6d0c5da525ad6889567c60ba4703e1dc325
|
|
BLAKE2b-256 checksum How to use checksums |
ae2aed977d629860e02f4d3c3042120643de994bcb179407a4c45e1f3cd1e0fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.16
|