{"id":46435217,"url":"https://github.com/jae-labs/flashcards","last_synced_at":"2026-06-03T00:01:18.381Z","repository":{"id":342375896,"uuid":"1173750700","full_name":"jae-labs/flashcards","owner":"jae-labs","description":"Transform notes into flashcards with local AI. Study offline, stay private, learn smarter—for free!","archived":false,"fork":false,"pushed_at":"2026-06-02T13:35:22.000Z","size":247,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T15:18:38.225Z","etag":null,"topics":["ai","cli","flashcards","flashcards-cli","golang","llama","ollama","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"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/jae-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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},"funding":{"github":"luiz1361","buy_me_a_coffee":"luiz1361"}},"created_at":"2026-03-05T17:56:29.000Z","updated_at":"2026-06-02T13:33:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jae-labs/flashcards","commit_stats":null,"previous_names":["jae-labs/flashcards"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/jae-labs/flashcards","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jae-labs%2Fflashcards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jae-labs%2Fflashcards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jae-labs%2Fflashcards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jae-labs%2Fflashcards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jae-labs","download_url":"https://codeload.github.com/jae-labs/flashcards/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jae-labs%2Fflashcards/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33841996,"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-02T02:00:07.132Z","response_time":109,"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":["ai","cli","flashcards","flashcards-cli","golang","llama","ollama","sqlite"],"created_at":"2026-03-05T20:27:29.291Z","updated_at":"2026-06-03T00:01:18.364Z","avatar_url":"https://github.com/jae-labs.png","language":"Go","funding_links":["https://github.com/sponsors/luiz1361","https://buymeacoffee.com/luiz1361"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"logo/logo-xs.png\" alt=\"Flashcards Logo\" width=\"120\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://codecov.io/gh/jae-labs/flashcards\"\u003e\u003cimg src=\"https://codecov.io/gh/jae-labs/flashcards/branch/main/graph/badge.svg\" alt=\"codecov\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/jae-labs/flashcards\" alt=\"GitHub issues\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/jae-labs/flashcards\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/network\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/jae-labs/flashcards\" alt=\"GitHub forks\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/jae-labs/flashcards/total\" alt=\"Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/jae-labs/flashcards/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://github.com/jae-labs/flashcards/actions/workflows/release.yml/badge.svg\" alt=\"Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://goreportcard.com/report/github.com/jae-labs/flashcards\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/jae-labs/flashcards\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/jae-labs/flashcards\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jae-labs/flashcards/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/jae-labs/flashcards\" alt=\"GitHub release\"\u003e\u003c/a\u003e\n\u003ca href=\"go.mod\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/jae-labs/flashcards\" alt=\"Go Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://buymeacoffee.com/luiz1361\"\u003e\u003cimg src=\"https://img.shields.io/badge/Buy%20Me%20A%20Coffee-donate-orange.svg?logo=buymeacoffee\" alt=\"Buy Me A Coffee\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n\nFlashcards is a fast, minimal command-line tool for turning your notes into interactive flashcards and reviewing them with spaced repetition. Simply point Flashcards at your folder of markdown notes, and it uses Ollama's local AI models (LLMs) to automatically generate flashcards and quiz you in a colorful terminal interface. Flashcards is written in Go for minimal dependencies—all you need is the Ollama App from [ollama.com](https://ollama.com) and the compiled binary from this repository. No cloud, no subscriptions, no hidden costs.\n\n**Why Flashcards?**\n- Effortlessly convert your markdown notes into flashcards using local AI (LLM)\n- Review and reinforce knowledge with spaced repetition\n- Enjoy a distraction-free, user-friendly terminal experience\n- 100% private: your notes and flashcards never leave your device\n- Secure and offline: no internet required, no data sent to third parties\n- Free and open-source: no hidden costs or paywalls\n\nDesigned for simplicity, privacy, and security. Runs entirely offline and stores your cards locally in a SQLite database. It was developed and tested on macOS, but works on any platform that supports the Ollama App.\n\n## Quick Start\n\n\n1. **Install Ollama Desktop:**\n  - Download and install from [ollama.com](http://ollama.com/)\n\n2. **Pull the llama3.1 model:**\n  ```bash\n  ollama pull llama3.1\n  ```\n\n3. **Install Flashcards:**\n\n  * **Option A: Using Homebrew (Recommended)**  \n  ```bash\n  brew tap jae-labs/formulae\n  brew install flashcards\n  ```  \n  \u003e [!TIP]  \n  \u003e This is the easiest way—it sets up everything automatically eg. PATH, upgrades, etc. If you don't have Homebrew, install it first from [brew.sh](https://brew.sh).\n\n  * **Option B: Using the install script**  \n  ```bash\n  curl -fsSL https://raw.githubusercontent.com/jae-labs/flashcards/refs/heads/main/install.sh | bash\n  ```\n\n4. **Generate flashcards from your markdown notes**\n\n  ```bash\n  # From a directory (recursive)\n  flashcards generate --path /path/to/notes\n\n  # From a single file\n  flashcards generate --path /path/to/notes/file.md\n  ```\n\n5. **Review your flashcards:**\n  ```bash\n  flashcards\n  ```\n\nThat's it! No extra configuration needed. It will use the local Ollama API and store flashcards in a SQLite database.\n\n## Admin Mode\n\nFlashcard's database management with full CRUD (Create, Read, Update, Delete) capabilities. \n\n**Launch admin mode:**\n```bash\nflashcards admin\n```\n**Use Cases:**\n- Manually create flashcards without generating from markdown\n- Fix typos or improve existing flashcards\n- Remove outdated or duplicate cards\n- Reset your entire study schedule when starting a new review cycle\n- Manage cards created from multiple sources\n\n## Features\n\n| Feature                        | Description                                         |\n|--------------------------------|-----------------------------------------------------|\n| AI Flashcard Generation        | Create flashcards from markdown using Ollama AI      |\n| Spaced Repetition Review       | Review cards with spaced repetition algorithm        |\n| Admin Mode                     | Full CRUD management of flashcards with bulk operations |\n| Terminal User Interface        | Colorful, user-friendly TUI for reviewing cards      |\n| SQLite Storage                 | Flashcards stored locally in SQLite database         |\n| No Extra Configuration         | Works out-of-the-box with minimal setup              |\n\n## FAQ\n\u003cdetails\u003e\n\u003csummary\u003eWhat are the system requirements?\u003c/summary\u003e\nTested on a MacBook M2 with 16GB of RAM using the llama3.1 model. Performance and compatibility may vary on other systems.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat platforms are supported?\u003c/summary\u003e\nAny platform supported by the Ollama App (tested on macOS)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDo I need an internet connection?\u003c/summary\u003e\nNo, Ollama runs locally.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhere are flashcards stored?\u003c/summary\u003e\nFlashcards are stored in a local SQLite database file located at \u003ccode\u003e~/.flashcards/flashcards.db\u003c/code\u003e.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCan I use my own markdown files?\u003c/summary\u003e\nYes, just point Flashcards to your folder containing your markdown files.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I update the Ollama model?\u003c/summary\u003e\nUse `ollama pull \u003cmodel\u003e` to update or change models.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I change the default Ollama model?\u003c/summary\u003e\nYou can use the `--model` flag to specify the Ollama model for flashcard generation.\n\u003c/details\u003e\n\n## Screenshots\n\nBelow are some screenshots of Flashcards in action:\n\n![Review](screenshots/review.png)\n\n## Contributing\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\nSee [LICENSE](LICENSE).\n\n## Stars\n## Star History\n[![Star History Chart](https://api.star-history.com/svg?repos=jae-labs/flashcards\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#jae-labs/flashcards\u0026type=date\u0026legend=top-left)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjae-labs%2Fflashcards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjae-labs%2Fflashcards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjae-labs%2Fflashcards/lists"}