Awesome-omni-skill wise
Access Wise (TransferWise) accounts to check balances, view recipients, and get quotes. For transaction history, use the archived CSV files. Use when the user asks about Wise balances, transactions, payments, or money transfers.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/wise" ~/.claude/skills/diegosouzapw-awesome-omni-skill-wise && rm -rf "$T"
skills/cli-automation/wise/SKILL.mdWise Account Access
Access Wise accounts via the
wise.cs CLI tool and archived transaction CSV files. API token is stored in macOS Keychain.
Important: Personal Account API Limitations (PSD2 Compliance)
Wise no longer supports the following operations via API for personal accounts due to PSD2 (Payment Services Directive 2) requirements:
- ❌ Transaction history / account statements
- ❌ Funding transfers via API (must be done through website/app)
- ❌ Any operation requiring Strong Customer Authentication (SCA)
What still works via API:
- ✅ Check balances
- ✅ List recipients
- ✅ Get currency conversion quotes
- ✅ Create draft transfers (must be funded via website/app)
For transaction history, use the archived CSV files in this directory instead.
Archived Transaction Files
Since Wise no longer provides transaction history via API for personal accounts, you can manually export CSV files from wise.com and store them in this directory.
To export transaction history:
- Log in to wise.com
- Go to your account statements
- Select date range and export as CSV
- Save the CSV files in this skill directory (e.g.,
,wise-personal-2024.csv
)wise-business-2025.csv
CSV columns provided by Wise: ID, Status, Direction, Created on, Finished on, Source fee amount, Source fee currency, Target fee amount, Target fee currency, Source name, Source amount (after fees), Source currency, Target name, Target amount (after fees), Target currency, Exchange rate, Reference, Batch, Created by, Category, Note
Note: Add your CSV files to
.gitignore to avoid committing personal financial data to version control.
Quick Reference
# List all profiles dotnet run wise.cs -- profiles # Get balances (personal profile) dotnet run wise.cs -- balances # Get balances (business profile) dotnet run wise.cs -- balances --type business # List recipients dotnet run wise.cs -- recipients # Get a quote dotnet run wise.cs -- quote --source-currency EUR --target-currency USD --amount 100 # Create a draft transfer (requires --confirm) dotnet run wise.cs -- transfer --quote-id <id> --recipient-id <id> --reference "Payment" --confirm
Setup
1. Get Your Wise API Token
- Log in to wise.com
- Go to Settings > API tokens
- Create a new API token (read-only or full access depending on your needs)
- Copy the token
2. Store Token in macOS Keychain
security add-generic-password -s "wise-api" -a "api_token" -w "YOUR_TOKEN_HERE" -U
This stores your token securely in the macOS Keychain. The tool will retrieve it automatically.
3. Find Your Profile IDs
Run the profiles command to see your available profiles:
dotnet run wise.cs -- profiles
You'll see output like:
{ "success": true, "profiles": [ { "id": 12345678, "type": "personal", "fullName": "Your Name" }, { "id": 87654321, "type": "business", "fullName": "Your Business" } ] }
Note these profile IDs - you can use them with the
--profile-id flag, or use --type personal / --type business shortcuts.
Commands
profiles
List all profiles (personal and business) accessible with the API token.
dotnet run wise.cs -- profiles
balances
Get account balances for a profile.
# Personal profile (default) dotnet run wise.cs -- balances # Business profile dotnet run wise.cs -- balances --type business # By specific profile ID (use your profile ID from 'profiles' command) dotnet run wise.cs -- balances --profile-id 12345678
Options:
or--type
: Profile type (-t
orpersonal
)business
or--profile-id
: Specific profile ID-p
recipients
List saved payment recipients.
# All recipients dotnet run wise.cs -- recipients # Filter by currency dotnet run wise.cs -- recipients --currency EUR
Options:
or--type
: Profile type-t
or--profile-id
: Specific profile ID-p
or--currency
: Filter by currency-c
quote
Get a quote for a currency conversion.
dotnet run wise.cs -- quote --source-currency EUR --target-currency USD --amount 100
Options:
: Source currency code (required)--source-currency
: Target currency code (required)--target-currency
: Amount in source currency (required)--amount
or--type
: Profile type-t
or--profile-id
: Specific profile ID-p
transfer
Create a draft transfer. Requires explicit
--confirm flag as a safety measure.
dotnet run wise.cs -- transfer --quote-id <uuid> --recipient-id <id> --reference "Invoice 123" --confirm
Options:
: Quote UUID from quote command (required)--quote-id
: Recipient ID from recipients command (required)--recipient-id
: Payment reference/description--reference
: Required flag to create the draft transfer--confirm
or--type
: Profile type-t
or--profile-id
: Specific profile ID-p
Note: Due to PSD2 requirements, transfers created via API are draft transfers. You must fund them through the Wise website or mobile app.
create-recipient
Create a new recipient for transfers. Use this when the recipient doesn't exist in the recipients list.
dotnet run wise.cs -- create-recipient --name "John Doe" --iban "NL91INGB0684399148" --currency EUR
Options:
: Account holder name (required)--name
: IBAN (required)--iban
: Currency code, e.g., EUR (required)--currency
: PRIVATE (default) or BUSINESS--legal-type
or--type
: Profile type-t
or--profile-id
: Specific profile ID-p
Making a Transfer to a New Recipient
To send money to someone not in your recipients list:
-
Create the recipient first:
dotnet run wise.cs -- create-recipient --name "Recipient Name" --iban "NL..." --currency EURNote the
from the response (e.g.,id
).1301313468 -
Get a quote for the amount:
dotnet run wise.cs -- quote --source-currency EUR --target-currency EUR --amount 100Extract the
(UUID) from the response.id -
Create the draft transfer:
dotnet run wise.cs -- transfer --quote-id "<uuid>" --recipient-id <id> --reference "Description" --confirm -
Fund the transfer via Wise website/app (required due to PSD2).
Tip: For EUR-to-EUR transfers using balance funding, there's no fee. Other payment methods have fees.
Output Format
All commands output JSON. Success responses include
"success": true. Example balances output:
{ "success": true, "profileId": 12345678, "balances": [ { "id": 44495612, "currency": "EUR", "amount": { "value": 1234.56, "currency": "EUR" }, "type": "STANDARD" } ] }
Authentication
API token is stored in macOS Keychain under service
wise-api, account api_token.
Writing Ephemeral Programs
When writing programs that interact with Wise, you can either:
- Use the CSV files directly for transaction history analysis
- Use CliWrap to call wise.cs for live data (balances, recipients, quotes)
Example using CliWrap:
#:package CliWrap@3.6.6 using CliWrap; using CliWrap.Buffered; var result = await Cli.Wrap("dotnet") .WithArguments(["run", "wise.cs", "--", "balances", "--type", "personal"]) .WithWorkingDirectory("/path/to/wise/skill") .ExecuteBufferedAsync(); var json = result.StandardOutput;