{"id":45593144,"url":"https://github.com/eshaffer321/itemize","last_synced_at":"2026-02-23T13:02:04.390Z","repository":{"id":312642702,"uuid":"1048170985","full_name":"eshaffer321/itemize","owner":"eshaffer321","description":"Automatically itemize and categorize retail transactions in Monarch Money","archived":false,"fork":false,"pushed_at":"2026-01-03T03:29:57.000Z","size":48643,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-07T19:58:34.032Z","etag":null,"topics":["amazon","automation","cli","costco","golang","monarch-money","personal-finance","walmart"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eshaffer321.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-01T03:32:43.000Z","updated_at":"2026-01-06T06:38:31.000Z","dependencies_parsed_at":"2025-09-01T06:04:33.637Z","dependency_job_id":null,"html_url":"https://github.com/eshaffer321/itemize","commit_stats":null,"previous_names":["eshaffer321/monarchmoney-walmart-server","eshaffer321/itemize"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eshaffer321/itemize","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eshaffer321%2Fitemize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eshaffer321%2Fitemize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eshaffer321%2Fitemize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eshaffer321%2Fitemize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eshaffer321","download_url":"https://codeload.github.com/eshaffer321/itemize/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eshaffer321%2Fitemize/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29743765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["amazon","automation","cli","costco","golang","monarch-money","personal-finance","walmart"],"created_at":"2026-02-23T13:01:52.693Z","updated_at":"2026-02-23T13:02:04.382Z","avatar_url":"https://github.com/eshaffer321.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Monarch Money Sync\n\nCLI tool that syncs purchases from Walmart, Costco, and Amazon with Monarch Money. Automatically splits transactions by category using AI.\n\n## What it does\n\n1. Fetches orders from retailers with item details\n2. Matches them to transactions in Monarch Money\n3. Categorizes items using OpenAI\n4. Splits the transaction by category with proportional tax\n\n**Example**: A $150 Walmart transaction becomes:\n- $104.57 Groceries (milk, bread, eggs...)\n- $28.42 Household (paper towels, cleaning supplies)\n- $17.32 Personal Care (shampoo, toothpaste)\n\n## Setup\n\n### Prerequisites\n\n- Go 1.24+\n- Monarch Money account\n- OpenAI API key\n- Retailer account(s)\n\n### Install\n\n```bash\ngit clone https://github.com/eshaffer321/monarchmoney-sync-backend\ncd monarchmoney-sync-backend\ngo build -o monarch-sync ./cmd/monarch-sync/\n```\n\n### Configure\n\nSet environment variables:\n```bash\nexport MONARCH_TOKEN=\"your_monarch_token\"\nexport OPENAI_API_KEY=\"your_openai_key\"\n```\n\nOr create `config.yaml`:\n```yaml\nmonarch:\n  api_key: \"${MONARCH_TOKEN}\"\n\nopenai:\n  api_key: \"${OPENAI_API_KEY}\"\n  model: \"gpt-4o\"\n\nstorage:\n  database_path: \"monarch_sync.db\"\n```\n\n## Usage\n\n```bash\n# Preview changes (dry run)\n./monarch-sync walmart -dry-run -days 14\n./monarch-sync costco -dry-run -days 7\n./monarch-sync amazon -dry-run -days 7\n\n# Apply changes\n./monarch-sync walmart -days 14\n./monarch-sync costco -days 7\n./monarch-sync amazon -days 7\n```\n\n### Flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `-dry-run` | false | Preview without applying changes |\n| `-days` | 14 | Days to look back for orders |\n| `-max` | 0 | Max orders to process (0 = all) |\n| `-verbose` | false | Show detailed logs |\n| `-force` | false | Reprocess already-processed orders |\n\n## Provider Setup\n\n### Walmart\nRequires cookies in `~/.walmart-api/cookies.json`. See [walmart-client-go](https://github.com/eshaffer321/walmart-client-go).\n\n### Costco\nUses credentials saved by [costco-go](https://github.com/eshaffer321/costco-go).\n\n### Amazon\nRequires [amazon-order-scraper](https://www.npmjs.com/package/amazon-order-scraper) CLI:\n```bash\nnpm install -g amazon-order-scraper\namazon-scraper --login  # authenticate once\n```\n\n## Troubleshooting\n\n**\"No matching transaction found\"**\n- Transaction hasn't posted to Monarch yet (wait 1-3 days)\n- Amount differs by more than $0.01\n- Date differs by more than 5 days\n\n**\"Order already processed\"**\n- Use `-force` to reprocess\n\n**OpenAI errors**\n- Check `OPENAI_API_KEY` is set and has credits\n\n## Development\n\n```bash\n# Run tests\ngo test ./...\n\n# With coverage\ngo test ./... -cover\n```\n\nSee [CLAUDE.md](CLAUDE.md) for architecture details and development guide.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feshaffer321%2Fitemize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feshaffer321%2Fitemize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feshaffer321%2Fitemize/lists"}