{"id":49751646,"url":"https://github.com/teamtinvio/jaz-ai","last_synced_at":"2026-06-17T04:01:11.161Z","repository":{"id":337276239,"uuid":"1152918624","full_name":"teamtinvio/jaz-ai","owner":"teamtinvio","description":"Complete agent stack for Jaz. Plugins, Skills, MCP tools, and CLI for Claude Code, Cowork, Codex, Copilot, Cursor, and more.","archived":false,"fork":false,"pushed_at":"2026-06-10T23:59:55.000Z","size":23461,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-11T01:21:25.763Z","etag":null,"topics":["accounting","agent-skills","ai-agents","api","bank-reconciliation","bookkeeping","claude-code","cli","codex","copilot","financial-calculator","fintech","ifrs","invoicing","reconciliation","rest-api","tax"],"latest_commit_sha":null,"homepage":"https://www.jaz.ai","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teamtinvio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-08T16:28:48.000Z","updated_at":"2026-06-10T23:59:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/teamtinvio/jaz-ai","commit_stats":null,"previous_names":["teamtinvio/claude-plugins","teamtinvio/jaz-ai"],"tags_count":122,"template":false,"template_full_name":null,"purl":"pkg:github/teamtinvio/jaz-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teamtinvio%2Fjaz-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teamtinvio%2Fjaz-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teamtinvio%2Fjaz-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teamtinvio%2Fjaz-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teamtinvio","download_url":"https://codeload.github.com/teamtinvio/jaz-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teamtinvio%2Fjaz-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34433086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accounting","agent-skills","ai-agents","api","bank-reconciliation","bookkeeping","claude-code","cli","codex","copilot","financial-calculator","fintech","ifrs","invoicing","reconciliation","rest-api","tax"],"created_at":"2026-05-10T11:15:31.072Z","updated_at":"2026-06-17T04:01:11.154Z","avatar_url":"https://github.com/teamtinvio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jaz AI · Agent stack for the ledger\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/teamtinvio/jaz-ai/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/teamtinvio/jaz-ai?style=for-the-badge\u0026color=blue\" alt=\"GitHub Release\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/tools-289-blue?style=for-the-badge\" alt=\"289 tools\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/API_rules-158-green?style=for-the-badge\" alt=\"158 API rules\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/skills-6-purple?style=for-the-badge\" alt=\"6 skills\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/recipes-16-orange?style=for-the-badge\" alt=\"16 Recipes\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/calculators-13-red?style=for-the-badge\" alt=\"13 Calculators\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/jobs-12-teal?style=for-the-badge\" alt=\"12 Jobs\"\u003e\n  \u003ca href=\"https://github.com/teamtinvio/jaz-ai/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/teamtinvio/jaz-ai?style=for-the-badge\u0026color=green\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/jaz-clio\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/jaz-clio?style=flat-square\u0026logo=npm\u0026label=CLI\" alt=\"npm\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/jaz-clio\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/jaz-clio?style=flat-square\u0026label=downloads\" alt=\"npm downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/teamtinvio/jaz-ai/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/teamtinvio/jaz-ai?style=flat-square\u0026logo=github\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThe complete agent surface for [Jaz](https://jaz.ai) accounting. 289 tools, 6 skills, 16 IFRS recipes, 13 calculators, 12 close playbooks. Works with any agent: Claude, GPT, Gemini, Copilot, Cursor. Token-lean discovery, one-shot tool selection, structured errors an agent can recover from.\n\n\u003e Also fully compatible with [Juan Accounting](https://juan.ac) (same API surface).\n\n## Contents\n\n- [Install · 30 seconds](#install--30-seconds)\n- [What you get](#what-you-get)\n- [Three layers](#three-layers)\n- [Quick start](#quick-start)\n- [Token economics + speed](#token-economics--speed)\n- [For AI agents](#for-ai-agents)\n- [For accountants](#for-accountants)\n- [Reference](#reference)\n- [Troubleshooting](#troubleshooting)\n- [Privacy \u0026 security](#privacy--security)\n- [Support](#support)\n\n## Install · 30 seconds\n\n| Your agent | Install |\n|------------|---------|\n| **Claude.ai · ChatGPT · Cowork** (hosted, no install) | Add a custom connector → `https://mcp.jaz.ai/mcp` → sign in. See [Remote connector](#remote-connector--no-install). |\n| **Microsoft 365 Copilot · Copilot Studio** (hosted, no install) | Add an MCP tool → `https://mcp.jaz.ai/mcp` → OAuth sign-in. See [Microsoft 365 Copilot](#microsoft-365-copilot--copilot-studio). |\n| **Claude Code** | `/plugin marketplace add teamtinvio/jaz-ai` |\n| **Claude Desktop** | Install the `.mcpb` from [latest release](https://github.com/teamtinvio/jaz-ai/releases/latest) |\n| **Cursor / Windsurf** | Add the stdio MCP config (below) |\n| **VS Code (incl. GitHub Copilot)** | Add the VS Code MCP config (below) to `.vscode/mcp.json` |\n| **Gemini CLI** | `gemini extensions install https://github.com/teamtinvio/jaz-ai` |\n| **OpenAI Codex CLI / Agents SDK** | Add the stdio MCP config (below) |\n| **OpenAI Responses API** | Hosted HTTP MCP only (see [Responses API note](#openai-responses-api)) |\n| **npm (CLI)** | `npm install -g jaz-clio \u0026\u0026 clio auth add \u003cjk-your-api-key\u003e` |\n\n**Stdio MCP config** (Claude Desktop, Cursor, Windsurf, OpenAI Codex CLI / Agents SDK, any host that runs MCP servers as local processes):\n\n```json\n{\n  \"mcpServers\": {\n    \"jaz\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"jaz-clio@5.20.16\", \"mcp\"],\n      \"env\": { \"JAZ_API_KEY\": \"jk-your-api-key\" }\n    }\n  }\n}\n```\n\n**VS Code MCP config** (`.vscode/mcp.json`, workspace-scoped, read by VS Code and the GitHub Copilot Chat extension):\n\n```json\n{\n  \"servers\": {\n    \"jaz\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"jaz-clio@5.20.16\", \"mcp\"],\n      \"env\": { \"JAZ_API_KEY\": \"jk-your-api-key\" }\n    }\n  }\n}\n```\n\nPin `jaz-clio@5.20.16` for stability, or `jaz-clio@latest` for auto-updates. **Multi-org**: comma-separated keys, e.g. `\"JAZ_API_KEY\": \"jk-aaa,jk-bbb\"`. Personal access tokens (`pat-...`) also work for multi-org.\n\n### Remote connector · no install\n\nBring Jaz into **Claude** (claude.ai, Desktop, mobile, Cowork) and **ChatGPT** with no install and no API key in any config. Just sign in.\n\n1. In Claude: **Settings → Connectors → Add custom connector** (ChatGPT: **Add a connector**).\n2. Enter the URL `https://mcp.jaz.ai/mcp`.\n3. Sign in with your Jaz account (email one-time code or passkey) and **Allow**.\n\nIt uses OAuth 2.1 + PKCE: the agent receives a scoped, time-limited token tied to your account, never your password. One sign-in reaches **every organization you belong to**; name the org in your request (e.g. *\"in Acme Pte Ltd, list unpaid invoices\"*), and access to each is checked on every call. Same tool surface as the local server, with honest read-only / write / destructive hints. Bookkeeping only: it records entries and reads data. It moves no money.\n\n### Microsoft 365 Copilot · Copilot Studio\n\nBring Jaz into Microsoft 365 Copilot through a Copilot Studio agent. Cloud to cloud: no install, no API key in any config.\n\n1. In [Copilot Studio](https://copilotstudio.microsoft.com), open your agent and go to **Tools → Add a tool → New tool → Model Context Protocol**.\n2. Enter the server name (Jaz), a short description, and the URL `https://mcp.jaz.ai/mcp`.\n3. Authentication: **OAuth 2.0 → Dynamic discovery** → **Create** → **Next**.\n4. On the **Add tool** dialog, select **Create a new connection**, sign in with your Jaz account, and **Allow**.\n5. Select **Add to agent**, then publish the agent to Microsoft 365 Copilot or Teams as usual.\n\nSame tool surface and per-call organization checks as the [remote connector](#remote-connector--no-install); the sign-in here uses OAuth 2.0 dynamic client registration. If your tenant restricts custom connectors, a Power Platform admin needs to allow this one.\n\n**Prefer a local install on the Microsoft stack?** Copilot Studio is cloud-only and cannot run local MCP servers. Use VS Code with GitHub Copilot Chat instead: the [VS Code MCP config](#install--30-seconds) runs Jaz locally with an API key, and `npx jaz-clio init --platform copilot` installs the skills to `.github/copilot-instructions.md`.\n\n### OpenAI Responses API\n\nThe Responses API only accepts **HTTP MCP** (no stdio). Point it at the hosted Jaz connector:\n\n```json\n{\n  \"type\": \"mcp\",\n  \"server_label\": \"jaz\",\n  \"server_url\": \"https://mcp.jaz.ai/mcp\",\n  \"headers\": { \"Authorization\": \"Bearer \u003cyour-oauth-token\u003e\" },\n  \"require_approval\": \"never\"\n}\n```\n\nThe endpoint is OAuth-gated (no static API key). Obtain a token through the [remote connector](#remote-connector--no-install) sign-in and pass it as a bearer token. To use a plain API key instead, take the OpenAI Codex CLI / Agents SDK stdio path above.\n\n**Just want skills** (no MCP, any agent on the [Agent Skills](https://agentskills.io) standard):\n\n```bash\nnpx jaz-clio init                  # auto-detects your tool\nnpx jaz-clio init --platform cursor\nnpx jaz-clio init --no-rules       # skills only, skip the agent-rules file\nnpx jaz-clio init --check          # report drift between installed agent-rules version and current\n```\n\nSkills install to `.agents/skills/` (Agent Skills standard, used by Cursor, Copilot, Codex, Antigravity, Windsurf, Goose, Roo Code, Junie, Amp, and more) or `.claude/skills/` (Claude Code).\n\n`init` also writes a one-page `jaz-agent-rules.md` block to the path your platform reads on workspace open, so any agent (Claude / GPT / Gemini / Copilot / Cursor) starts every session with the meta-tool discovery flow, the 6 API gotchas, and the recipe-engine carve-outs.\n\nThe block is wrapped in version-stamped markers (`\u003c!-- BEGIN jaz-agent-rules vX.Y.Z --\u003e` / `\u003c!-- END jaz-agent-rules --\u003e`), so re-running `init` updates only the Jaz block; your own rules above and below stay untouched. Run `clio init --check` to report drift between your installed version and the current package version (exit 1 = drift, exit 0 = current).\n\n| Platform | Rules file path |\n|---|---|\n| Claude Code | `CLAUDE.md` |\n| Codex / Antigravity / Goose | `AGENTS.md` |\n| GitHub Copilot | `.github/copilot-instructions.md` |\n| Cursor | `.cursor/rules/jaz.mdc` (auto-loaded via `alwaysApply: true`) |\n| Windsurf | `.windsurf/rules/jaz.md` |\n| Gemini CLI | `GEMINI.md` |\n\n## What you get\n\n- **289 tools** covering every Jaz endpoint. Each tool description disambiguates against similar tools, lists enum values inline, and flags idempotency. The LLM picks right on the first call.\n- **6 skills** with the production-grade rules and playbooks any agent needs:\n\n| Skill | What it teaches an agent |\n|-------|--------------------------|\n| **jaz-api** | 158 API rules, every endpoint, error catalog, field aliases, response shapes |\n| **jaz-cli** | The `clio` command surface, auth precedence, output formats, pagination |\n| **jaz-conversion** | Xero / QuickBooks / Sage / MYOB / Excel migration, CoA mapping, FX, clearing accounts, TB verification |\n| **jaz-jobs** | 12 close playbooks (month-end / quarter-end / year-end / bank-recon / GST-VAT / payment-run / credit-control / supplier-recon / audit-prep / FA-review / statutory-filing) + Singapore Form C-S |\n| **jaz-recipes** | 16 IFRS recipes (loans, IFRS 16 leases, depreciation, FX reval, ECL, IAS 37 provisions, asset disposal, etc.) + 13 calculators |\n| **jaz-pseudo-sql** | Read-only SQL over the curated reporting schema: ad-hoc questions, joins and aggregates, sync preview or async CSV export |\n\n- **3 meta-tools** (`search_tools`, `describe_tools`, `execute_tool`) for deferred discovery so the full catalog never has to load into context.\n- **Help center mirror** at `help-center-mirror/` synced weekly from Intercom.\n- **Structured-search DSL** for natural-feeling queries (`status:unpaid amount:\u003e500 contact:Acme`).\n\n## Three layers\n\nThe stack is one binary plus markdown skills, exposed through three layers that compose. The default agent setup is **Skills + MCP**. The CLI is the same binary as the MCP server with a different transport flag.\n\n| Layer | What it is | Use it alone when |\n|-------|------------|-------------------|\n| **Skills** | Domain knowledge as markdown (158 API rules, 16 recipes, 12 jobs, conversion playbooks). The agent reads these at session start. | Your AI tool reads markdown but cannot call binaries (e.g., a Custom GPT with no actions). |\n| **CLI** (`jaz-clio`) | A `clio` binary: 58 command groups + 13 offline calculators + 12 offline blueprints + live API access. Humans run it; agents shell out to it. | You're scripting CI / running offline calculators / a human is at the terminal. |\n| **MCP server** (`clio mcp`) | The same binary in MCP mode: 289 tools as agent-callable functions with structured envelopes. | This is the default for any agent (Claude / GPT / Gemini / Copilot / Cursor) that takes accounting actions. |\n\nSkills layer on top of either. Most installs (Claude Code plugin, Claude Desktop MCPB, Cursor + MCP, Gemini extension) load Skills + MCP together. The MCP server runs **locally** (stdio, via the CLI binary) or **hosted** (the [remote connector](#remote-connector--no-install) at `mcp.jaz.ai`, no install). Same tools either way.\n\n## Quick start\n\nOnce installed, skills load automatically when an agent works with Jaz. Describe what you need:\n\n```\nClose the books for Acme for January. Bank-recon DBS Current first.\nThen file GST for Q1.\n```\n\nOr call the CLI directly:\n\n```bash\nclio invoices list --json\nclio calc loan --principal 100000 --rate 6 --term 60 --json\nclio jobs month-end --period 2025-01 --json\n```\n\nOr via MCP from any agent:\n\n```\nsearch_tools(\"anomalous bills\")\n  → download_export at rank 1\nexecute_tool(\"download_export\", { exportType: \"analysis-anomalous-bills\" })\n  → { fileName, fileUrl }\n```\n\n## Token economics + speed\n\nBuilt so any LLM sees the right tool fast and calls it once.\n\n| What | How |\n|------|-----|\n| **MCP delivery** | 3 meta-tools (~600 tokens) instead of all 289 tools (~78KB). LLM searches into the catalog only when needed. |\n| **OpenAI Responses API** | Native deferred tool_search with namespace bundles. ~78% token reduction over a static tool list. |\n| **Anthropic delivery** | Tool list cached via prompt-cache breakpoints (5-min TTL). System blocks cached. ~5KB/request savings after v5.4.4 cleanup. |\n| **Discovery ranker** | In-memory, no network round-trip. Scans tool name + description + searchHint + namespace. |\n| **Disambiguation** | Every tricky pair (`download_export` vs `export_records`, `view_auto_reconciliation` vs `quick_reconcile`, `validate_drafts` vs per-entity validators) has explicit \"USE THIS, not X\" preambles. Saves the 1-3 wrong-tool turns. |\n| **Median tool call** | Subsecond for read tools; bounded by the Jaz API + network. |\n| **Errors are structured** | 422 responses carry field-level details so the LLM can self-correct without human input. |\n\n## For AI agents\n\n- **Skills load automatically** from `.claude/skills/`, `.agents/skills/`, the Claude Code marketplace, the Gemini CLI extension, or the Claude Desktop MCPB.\n- **Discovery is one-shot.** 68 canonical-query lock-in tests guarantee the right tool at rank 1 for the queries that matter.\n- **Disambiguation is explicit.** Tools that look similar carry \"USE THIS, not X\" preambles. No more guessing.\n- **Errors are structured.** Server validation failures return field-level details so the agent can self-correct.\n- **Multi-org is native.** Comma-separated keys (`jk-aaa,jk-bbb`) or PATs unlock cross-org tools (`list_organizations`, per-call `org_id`).\n- **CONTEXT.md** captures runtime rules-of-engagement (bootstrap with `clio context --json`, search before create, mutate as draft first, never echo API keys).\n\n## For accountants\n\nRun period work conversationally. Describe it to any agent:\n\n\u003e Close March for Acme. Bank-recon DBS Current first.\n\u003e File GST for Q1.\n\n13 calculators (`clio calc loan / depreciation / lease / ecl / fx-reval / provision / fixed-deposit / asset-disposal / prepaid-expense / deferred-revenue / accrued-expense / leave-accrual / dividend`), 12 job blueprints (`clio jobs month-end / quarter-end / year-end / bank-recon / document-collection / gst-vat / payment-run / credit-control / supplier-recon / audit-prep / fa-review / statutory-filing`), all with `--json` for structured blueprint output.\n\n## Reference\n\n- **[CONTEXT.md](CONTEXT.md)** · runtime rules-of-engagement for agents using the stack\n- **[CHANGELOG.md](CHANGELOG.md)** · release notes\n- **[Skills source](src/skills/)** · all 6 skills (jaz-api / jaz-cli / jaz-conversion / jaz-jobs / jaz-recipes / jaz-pseudo-sql)\n- **[OpenAPI spec](spec/openapi.yaml)** · full HTTP surface, synced weekly\n- **[README-cli.md](README-cli.md)** · npm-package README, full CLI command catalog\n- **[help.jaz.ai](https://help.jaz.ai)** · Jaz product help center\n- **CLI surface**: 58 command groups across the `clio` binary\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWhat's inside · skill file catalog\u003c/strong\u003e\u003c/summary\u003e\n\n### jaz-api\n\n| Reference | Content |\n|-----------|---------|\n| `SKILL.md` | 158 API rules: auth, IDs, dates, FX, payments, field aliases, response shapes |\n| `endpoints.md` | Request/response examples for every core endpoint |\n| `errors.md` | Error catalog with root causes and fixes |\n| `field-map.md` | Intuitive name → actual field name mapping |\n| `search-reference.md` | Filter fields, sort fields, operators for 28 search endpoints |\n| `full-api-surface.md` | Complete endpoint catalog, enums, limits |\n| `dependencies.md` | Resource creation order (currencies → CoA → transactions) |\n| `feature-glossary.md` | Business context per feature |\n\n### jaz-recipes (16 IFRS recipes + 13 calculators)\n\n| Reference | Content |\n|-----------|---------|\n| `SKILL.md` | 16 recipes in 4 tiers, building blocks, calculator index |\n| `building-blocks.md` | Capsules, schedulers, manual journals, FA, tracking tags, nano classifiers |\n| `prepaid-amortization.md` | Annual insurance/rent paid upfront, monthly scheduler recognition |\n| `deferred-revenue.md` | Upfront customer payment, monthly revenue recognition |\n| `accrued-expenses.md` | Month-end accrual + reversal cycle using dual schedulers |\n| `bank-loan.md` | Loan disbursement, amortization table, monthly installments |\n| `ifrs16-lease.md` | ROU asset + lease liability unwinding (IFRS 16) |\n| `declining-balance.md` | DDB/150DB with switch-to-SL logic |\n| `fixed-deposit.md` | Placement, compound interest accrual, maturity (IFRS 9) |\n| `hire-purchase.md` | Like IFRS 16 but depreciate over useful life |\n| `asset-disposal.md` | Sale/scrap/write-off with gain/loss (IAS 16) |\n| `fx-revaluation.md` | Non-AR/AP FX revaluation with Day 1 reversal (IAS 21) |\n| `bad-debt-provision.md` | ECL simplified approach provision matrix (IFRS 9) |\n| `employee-accruals.md` | Leave (scheduler) + bonus (manual) accruals (IAS 19) |\n| `provisions.md` | PV recognition + monthly discount unwinding (IAS 37) |\n| `dividend.md` | Declaration + payment (two manual journals) |\n| `intercompany.md` | Mirrored invoices/bills across two entities |\n| `capital-wip.md` | CIP accumulation → FA transfer on completion |\n\n### jaz-jobs (12 close playbooks + Singapore Form C-S)\n\n| Reference | Content |\n|-----------|---------|\n| `SKILL.md` | 12 jobs + SG tax computation, CLI commands, wizard workflow |\n| `building-blocks.md` | Shared concepts: accounting periods, lock dates, period verification |\n| `month-end-close.md` | 5 phases, ~18 steps. Foundation for all period closes. |\n| `quarter-end-close.md` | Monthly + quarterly extras (GST/VAT, ECL, bonus accruals) |\n| `year-end-close.md` | Quarterly + annual extras (true-ups, dividends, CYE rollover) |\n| `bank-recon.md` | Match, categorize, resolve unreconciled items |\n| `bank-match.md` | 5-phase cascade matcher (1:1, N:1, 1:N, N:M) |\n| `document-collection.md` | Local + cloud (Dropbox / Drive / OneDrive) doc capture |\n| `gst-vat-filing.md` | Tax ledger review, discrepancy check, filing summary |\n| `payment-run.md` | Select bills by due date, process payments |\n| `credit-control.md` | AR aging review, overdue chase list, bad debt |\n| `supplier-recon.md` | AP vs supplier statement reconciliation |\n| `audit-prep.md` | Compile reports, schedules, reconciliations for auditor |\n| `fa-review.md` | Fixed asset register review, disposal/write-off |\n| `sg-tax/*.md` | 10 files: SG CIT framework, Form C-S fields, wizard, data extraction, add-backs, capital allowances, IFRS 16 tax adj, enhanced deductions, exemptions, loss carry-forward |\n\n### jaz-conversion\n\n| Reference | Content |\n|-----------|---------|\n| `SKILL.md` | Conversion domain knowledge, clearing account pattern, FX handling |\n| `mapping-rules.md` | CoA, contact, and tax code mapping rules |\n| `option1-full.md` | Full conversion (all transactions FY + FY-1) |\n| `option2-quick.md` | Quick conversion (opening balances at FYE) |\n| `file-types.md` | Supported file formats and detection heuristics |\n| `edge-cases.md` | Platform-specific quirks (Sage 300, Xero rounding) |\n| `verification.md` | Trial balance comparison and verification checklist |\n| `file-analysis.md` | Excel/CSV structure analysis and smart detection |\n\n\u003c/details\u003e\n\n## Troubleshooting\n\n### `command not found: clio`\n\nNode.js is not installed, or npm's global bin directory is not on `PATH`.\n\n```bash\nnode --version    # Need v18+. If missing, install LTS from https://nodejs.org\nnpm install -g jaz-clio\nnpm config get prefix    # e.g. /usr/local or ~/.nvm/versions/node/v22.x.x\nexport PATH=\"$(npm config get prefix)/bin:$PATH\"   # Add to ~/.bashrc or ~/.zshrc\n```\n\n### Auth error / 401 Unauthorized\n\nMissing or invalid API key. Keys expire if regenerated in the Jaz app.\n\n```bash\nclio auth whoami\nclio auth add \u003cyour-api-key\u003e       # Get from Settings \u003e API in Jaz\nclio auth list                     # Confirm the right org is active\n```\n\nIf you use env vars, set `JAZ_API_KEY` in the current shell or your MCP config's `env` block.\n\n### MCP not connecting\n\nThe config path is wrong, the command is wrong, or the server crashes on startup.\n\n```bash\nnpx jaz-clio mcp                   # Smoke-test the server (Ctrl+C to stop)\nclaude mcp list                    # Confirm Claude Code sees \"jaz\"\nclaude mcp add jaz -- npx jaz-clio mcp\n```\n\nFor Cursor / VS Code / Windsurf, validate the JSON and pin the API key:\n\n```json\n{\n  \"command\": \"npx\",\n  \"args\": [\"-y\", \"jaz-clio@5.20.16\", \"mcp\"],\n  \"env\": { \"JAZ_API_KEY\": \"jk-your-api-key\" }\n}\n```\n\n\u003e Pin `JAZ_API_KEY` in MCP config rather than relying on the active CLI profile. MCP servers cache credentials at startup so `clio auth switch` won't take effect until restart. For multi-org, use comma-separated keys.\n\n### Skills not loading\n\nFiles are in the wrong path, or your tool doesn't auto-discover from there.\n\n```bash\nls .claude/skills/                 # Claude Code\nls .agents/skills/                 # Agent Skills standard (Cursor, Copilot, etc.)\nnpx jaz-clio init                  # Re-install with auto-detection\n```\n\nEach skill folder must contain `SKILL.md` plus its reference files. Manual copies often miss subdirectories.\n\n### `EACCES` permission denied on npm install\n\nnpm's global directory needs elevated permissions on macOS/Linux without nvm.\n\n```bash\n# Option A: nvm (recommended)\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash\nnvm install --lts \u0026\u0026 npm install -g jaz-clio\n\n# Option B: fix npm permissions\nmkdir -p ~/.npm-global \u0026\u0026 npm config set prefix ~/.npm-global\nexport PATH=\"$HOME/.npm-global/bin:$PATH\"   # Add to ~/.bashrc or ~/.zshrc\nnpm install -g jaz-clio\n```\n\n### Stale data after org switch\n\nYou ran `clio auth switch` but the MCP server still uses the previous org (it cached auth at startup).\n\n```bash\n# In Claude Code: remove and re-add\nclaude mcp remove jaz \u0026\u0026 claude mcp add jaz -- npx jaz-clio mcp\n\n# In Cursor / VS Code: restart the editor or reload MCP servers\n```\n\nOr use multi-org mode and skip restarts: comma-separated keys (`jk-aaa,jk-bbb`) and switch orgs in conversation.\n\n## Privacy \u0026 security\n\nRuns entirely on your machine. API calls go directly from your machine to the Jaz API over HTTPS. No telemetry. The API key lives locally in `~/.config/jaz-clio/credentials.json`.\n\nThe **hosted remote connector** (`mcp.jaz.ai`) is different by design: you connect over OAuth 2.1 + PKCE (no API key stored anywhere, never your password), requests run server-side over HTTPS, and the connector reaches the organizations your Jaz account belongs to; access is checked on every call.\n\nFull policy: [jaz.ai/legal](https://jaz.ai/legal). Vulnerability disclosure: [SECURITY.md](SECURITY.md).\n\n## Support\n\n- **Help center**: [help.jaz.ai](https://help.jaz.ai)\n- **Issues**: [github.com/teamtinvio/jaz-ai/issues](https://github.com/teamtinvio/jaz-ai/issues)\n- **Email**: api-support@jaz.ai\n\n## License\n\n[MIT](LICENSE) · Copyright (c) 2026 Jaz · Clio is a registered trademark.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamtinvio%2Fjaz-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteamtinvio%2Fjaz-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamtinvio%2Fjaz-ai/lists"}