Itr Wala
karanb192/itr-wala
File Indian income tax returns (ITR) for FY 2025-26 / AY 2026-27.
Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.
$ npx skills add bex-co/beancount-io --skill beancount-options -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bex-co/beancount-io beancount-options --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.claude/skills/beancount-options .claude/skills/beancount-options && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .claude/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-optionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bex-co/beancount-io --skill beancount-options -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bex-co/beancount-io beancount-options --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.claude/skills/beancount-options .agents/skills/beancount-options && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .agents/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill beancount-options -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bex-co/beancount-io beancount-options --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.claude/skills/beancount-options .cursor/skills/beancount-options && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .cursor/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bex-co/beancount-io.git --path skills/.claude/skills/beancount-options--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bex-co/beancount-io --skill beancount-options -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bex-co/beancount-io beancount-options --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.claude/skills/beancount-options .gemini/skills/beancount-options && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .gemini/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bex-co/beancount-io beancount-optionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bex-co/beancount-io --skill beancount-options -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.claude/skills/beancount-options .github/skills/beancount-options && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .github/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill beancount-options -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bex-co/beancount-io beancount-options --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.claude/skills/beancount-options .opencode/skills/beancount-options && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "beancount-options" agent skill from https://github.com/bex-co/beancount-io/tree/main/skills/.claude/skills/beancount-options into .opencode/skills/beancount-options/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beancount-options", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
beancount-optionsRecord a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.
Beancount Options is an agent skill from bex-co/beancount-io. Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation. Use for single-leg or multi-leg opens, closes, rolls, assignment, exercise and expiration, including pasted broker confirmations. Skip options education, pricing/greeks, tax planning, analytics, and broker statement imports.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files, including reference files (for example `evals/evals.json`, `references/assignment.md` and `references/calendars-and-diagonals.md`).
It sits in Business, Finance & HR, covering Tax preparation. The repository describes itself as: 💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2e520db. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Beancount Options loads about 3.7k tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 94 tokens; SKILL.md has 1,718 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from bex-co/beancount-io at commit 2e520db, republished under its MIT licence (© bex-co). 1,718 words, ~3,689 tokens.
.claude/skills/beancount-options/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.Turn natural-language options descriptions into correct beancount transactions.
This skill exists because options accounting in beancount has subtle mechanics that are easy to get wrong by hand: short-position cost basis lives in negative-quantity holdings, premium becomes part of stock cost basis on assignment, multi-leg trades need link grouping, and the four close paths (close, expire, assign, exercise) produce different P&L treatment. The skill takes a description, infers the strategy and outcome, generates the correct transaction(s), and — only after explicit confirmation — appends them to the user's ledger.
beaRead beancount-init's references/bea-cli.md before running ledger commands: it defines explicit root/destination paths, JSON batches, checks, and safe retries. Without bea, use beancount-init's references/compatibility.md.
Write approved account opens and transactions through bea. Preserve cost
basis, inferred postings, tags and links. Use structured JSON batches for
explicit lots and the shared native add transaction --posting recipe for
{} lot selection or total-cost syntax. Keep the strategy-specific reasoning
and confirmation below.
Five phases, in order: Discover → Parse → Generate → Confirm + Write → Verify.
Before generating anything, learn the user's ledger. Look for beancount files in the working directory:
fd -e beancount -e bean . | head -20
# fallback: find . -maxdepth 4 \( -name '*.beancount' -o -name '*.bean' \)The "main" file is typically the one with option, plugin, or include directives at the top, or the largest file with open directives. Once found, scan it for:
^[0-9]{4}-[0-9]{2}-[0-9]{2} open .*Option^[0-9]{4}-[0-9]{2}-[0-9]{2} open Assets:[^:]+:[^:]+: (capture the broker name segment);; beancount-options configReport findings to the user before generating, so they can correct any misdetection. If discovery is ambiguous, ask:
If no prior options activity exists, propose:
Assets:Brokerage:<BrokerName>:{Cash,Options,Stock} and Income:Trading:OptionPremiumAAPL_PUT_20260620_00150000)Persist the choice as a config comment block at the top of the main file:
;; beancount-options config
;; commodity_format: occ_v1
;; append_target: ./transactions/2026.beancount
;; broker_default: RobinhoodThis is the contract going forward — re-read it on every invocation rather than re-detecting from scratch. Write the block as part of the first confirmed append (never before it); when prior options entries exist without one, propose adding it in that run's confirmation.
Reduce the user's description to a structured representation:
| Field | Required | Notes |
|---|---|---|
| underlying | yes | Ticker symbol |
| strategy | yes | single-leg, vertical, calendar, condor, etc. |
| action | yes | open, close, expire, assign, exercise, roll |
| broker | yes | Ask if not specified or detectable |
| trade_date | yes | Default: today |
| legs[] | yes | Each leg: direction (long/short), type (call/put), strike, expiry, qty |
| premium_per_contract | open/close only | Net or per-leg, depending on input |
| fees | optional | Folded into cash leg |
Parsing rules:
Sold to Open 1 AAPL Jun 20 '26 $150 Put @ 1.50.Each strategy + outcome maps to a transaction template. Read the matching references/<strategy>.md file before generating, even if the pattern feels obvious. References encode edge cases you might miss.
Universal generation rules — apply unless a reference file overrides:
{150.00 USD}, NOT {1.50 USD}.-1 X {1.50 USD} has posting weight -$1.50, but the cash leg is +$150. The transaction won't balance. Per-contract basis ({150.00 USD}) does balance against a per-contract cash leg.Expenses:Trading:Fees posting. Cash leg = net premium (gross − fees for STO/STC, gross + fees for BTO/BTC). Don't fold fees into cost basis or cash. This keeps cost basis as a clean dollar number, which makes assignment arithmetic produce clean per-share stock basis (strike − premium-per-share = whole cents).^link.^link. Don't combine. See references/rolling.md.references/assignment.md.references/exercise.md.{} disposal requires the held lot: a -100 AAPL {} posting matches an existing stock lot in that account. If the shares aren't booked in the ledger yet, book (or ask about) the purchase first — otherwise bea check fails with the unintuitive Too many missing numbers for currency group 'USD'.Show the user, then ask:
Target file: ./transactions/2026.beancount
New account opens (if any):
2026-05-01 open Assets:Brokerage:Robinhood:Options
2026-05-01 open Income:Trading:OptionPremium USD
2026-05-01 open Expenses:Trading:Fees USD
Proposed transaction:
2026-05-01 * "STO AAPL 150P 6/20" ^aapl-150p-20260620
Assets:Brokerage:Robinhood:Cash 149.35 USD
Assets:Brokerage:Robinhood:Options -1 AAPL_PUT_20260620_00150000 {150.00 USD}
Expenses:Trading:Fees 0.65 USD
Append to ./transactions/2026.beancount? (yes/no)On yes, open the approved new accounts with the shared add open recipe,
then write the confirmed batch:
bea --file "$ledger" --json --no-input add transactions --from "$batch" --into "$target"Use the proposed destination, including for year-bucketed files; validate
through the root ledger. Native lot-selection transactions use the shared
add transaction --posting recipe with the same root and destination.
Update only the reviewed config comment block.
On no, revise the proposal. Never write before confirmation. If a command
fails, inspect earlier successful writes before retrying the batch.
Verify the root ledger after writing:
bea --file "$ledger" --json --no-input checkUse beancount-init's references/compatibility.md only when bea is absent.
If the check reports any errors (transaction does not balance, lot booking failure, undeclared account, etc.), do NOT report success. Instead:
This step exists because the cost-basis arithmetic is subtle, especially for assignment, exercise, and multi-leg trades. Catching an error now is much cheaper than discovering it later during 1099-B reconciliation.
If no checker is available, report the result as unvalidated and suggest installing bea; manual posting weights do not establish correct lot booking.
If existing options trades use a convention, conform to it. Otherwise default to OCC-style:
<UNDERLYING>_<TYPE>_<YYYYMMDD>_<STRIKE_PADDED>STRIKE_PADDED is 8 digits: 5 dollars + 3 decimal places. Examples:
001500000000950002500000Full example: AAPL_PUT_20260620_00150000 for AAPL $150 put expiring June 20, 2026.
Optional commodity directive with metadata for queries:
2026-05-01 commodity AAPL_PUT_20260620_00150000
underlying: "AAPL"
expiry: 2026-06-20
strike: 150.00 USD
option_type: "PUT"Assets:Brokerage:<BrokerName>:Cash
Assets:Brokerage:<BrokerName>:Options
Assets:Brokerage:<BrokerName>:Stock
Income:Trading:OptionPremium
Income:Trading:CapitalGains
Expenses:Trading:FeesDetect the broker name from existing accounts and preserve case. If the broker doesn't yet exist in the ledger, generate open directives alongside the trade.
| Outcome | Option position | Stock side-effect | Income line |
|---|---|---|---|
| Buy/Sell to close | → 0 | None | Yes (P&L = open premium − close premium) |
| Expire worthless | → 0 at $0 | None | Yes (full premium) |
| Assigned (short) | → 0 at $0 | Forced trade at strike | None — premium adjusts stock basis |
| Exercised (long) | → 0 at $0 | Voluntary trade at strike | None — premium adjusts stock basis |
Always use the trade date (date the order filled), not settlement. 1099-B reports trade date in both date columns; matching it now saves reconciliation pain later.
Use an explicit Expenses:Trading:Fees posting. The cash leg holds the net premium (gross premium ± fees, depending on direction); the option leg's cost basis holds the gross premium × 100.
Why this convention:
Identify the strategy and read the matching reference file before generating.
| Strategy | Reference |
|---|---|
| Cash-secured put, naked put, naked call, long call, long put | references/single-leg.md |
| Covered call, protective put, collar, married put | references/stock-plus-option.md |
| Bull call spread, bear call spread, bull put spread, bear put spread, debit/credit spread | references/verticals.md |
| Iron condor, iron butterfly, condor, butterfly, broken-wing variants | references/condors-and-butterflies.md |
| Long/short straddle, long/short strangle | references/volatility-strategies.md |
| Calendar spread, double calendar, diagonal spread | references/calendars-and-diagonals.md |
| Wheel strategy (CSP→assign→CC→assign sequence) | references/wheel.md |
| Synthetic long/short, conversion, reversal, ratio spread, jade lizard | references/exotics.md |
Outcome-specific:
references/assignment.mdreferences/exercise.mdreferences/rolling.mdTax carve-outs:
references/section-1256.mdreferences/wash-sales.mdreferences/multi-broker.mdIf a description doesn't fit cleanly into one of these, default to single-leg or verticals and ask the user to confirm the strategy name.
Before writing to the user's ledger, every interaction MUST present:
open directives that will be addedOn no: ask what to change. Never argue. Never write without explicit yes.
Income:Dividends. Qualified-CC rules can affect tax treatment of the dividend itself — see stock-plus-option reference.option, plugin, or include directives.© bex-co, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 22 other files (references) in skills/.claude/skills/beancount-options of bex-co/beancount-io.
Open the folder on GitHubat commit 2e520db
Beancount Options next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Beancount Options this skillbex-co/beancount-io | 296 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Itr Walakaranb192/itr-wala | 871 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Tax Filingrobbalian/claude-tax-filing | 174 | — | ~2.5k | Automated safety check: Pass | None | |
| India Itr CopilotLoki200399/india-itr-copilot | 147 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Consumption Taxkazukinagata/shinkoku | 365 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Invoice Organizerdavila7/claude-code-templates | 33k | 12 repos | ~2.9k | Automated safety check: Pass | MIT |
karanb192/itr-wala
File Indian income tax returns (ITR) for FY 2025-26 / AY 2026-27.
robbalian/claude-tax-filing
Prepare and fill federal and state tax return PDF forms. An agent skill from robbalian/claude-tax-filing.
Loki200399/india-itr-copilot
Documents-first copilot for preparing Indian Income Tax Returns (ITR-1/2/3/4, any assessment year).
kazukinagata/shinkoku
This skill should be used when the user needs to calculate consumption tax (消費税) or determine their tax method (2割特例, 簡易課税, or 本則課税).
davila7/claude-code-templates
Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders.
tradermonty/claude-trading-skills
Provide US dividend tax and account-location workflow for Kanchi-style income portfolios.
bex-co/beancount-io
Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…
bex-co/beancount-io
Import a bank or card CSV, OFX/QFX, or QIF export into an existing Beancount ledger.
bex-co/beancount-io
Write or repair a reusable Beangulp importer from a sample bank export, with reviewed golden files and a passing test harness.
bex-co/beancount-io
Scaffold a new Beancount ledger with bea init and validation, with optional Fava browser setup when requested.
bex-co/beancount-io
Reconcile one Beancount account against a CSV statement or pasted PDF text.
bex-co/beancount-io
Summarize mobile changes since the previous release, bump the Beancount mobile version, prepare localized release notes and listings, and release to the Apple App Store and Google Play.
Categories
Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation. Beancount Options is an agent skill from bex-co/beancount-io. Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.
Beancount Options fits situations like: multi-leg opens; exercise and expiration; including pasted broker confirmations.
Run `npx skills add bex-co/beancount-io --skill beancount-options -a claude-code`. Or copy the skill folder (skills/.claude/skills/beancount-options in bex-co/beancount-io) into .claude/skills/beancount-options in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bex-co/beancount-io --skill beancount-options -a codex`. Or copy the skill folder (skills/.claude/skills/beancount-options in bex-co/beancount-io) into .agents/skills/beancount-options in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bex-co/beancount-io --skill beancount-options -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/beancount-options, .gemini/skills/beancount-options, .github/skills/beancount-options and .opencode/skills/beancount-options in your project.
SKILL.md names no scripts, command-line tools or credentials: Beancount Options is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Beancount Options is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Beancount Options: Itr Wala (karanb192/itr-wala, 871 stars), Tax Filing (robbalian/claude-tax-filing, 174 stars), India Itr Copilot (Loki200399/india-itr-copilot, 147 stars) and Consumption Tax (kazukinagata/shinkoku, 365 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bex-co (a GitHub organization) maintains it in bex-co/beancount-io, which has 296 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 10, 2026.
Source: bex-co/beancount-io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.