{"id":17678549,"url":"https://github.com/jeyj0/spare-actre","last_synced_at":"2025-03-30T18:16:53.972Z","repository":{"id":102553682,"uuid":"294447895","full_name":"jeyj0/spare-actre","owner":"jeyj0","description":"MIRROR","archived":false,"fork":false,"pushed_at":"2020-09-10T17:24:07.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T20:43:10.238Z","etag":null,"topics":["active-recall","learning","notes","orgmode","spaced-repitition"],"latest_commit_sha":null,"homepage":"https://codeberg.org/jeyj0/spare-actre","language":"Haskell","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/jeyj0.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-10T15:23:46.000Z","updated_at":"2020-09-10T17:33:38.000Z","dependencies_parsed_at":"2023-04-14T11:44:41.203Z","dependency_job_id":null,"html_url":"https://github.com/jeyj0/spare-actre","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeyj0%2Fspare-actre","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeyj0%2Fspare-actre/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeyj0%2Fspare-actre/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeyj0%2Fspare-actre/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeyj0","download_url":"https://codeload.github.com/jeyj0/spare-actre/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246358322,"owners_count":20764366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["active-recall","learning","notes","orgmode","spaced-repitition"],"created_at":"2024-10-24T08:05:10.935Z","updated_at":"2025-03-30T18:16:53.948Z","avatar_url":"https://github.com/jeyj0.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spare Actre\n\nSpare Actre is a SPAced REpition, ACTive REcall learning tool for the command-line.\n\nThis tool is for you if you have plain-text notes, ideally org-mode. With a little bit of syntax you can create flashcards inside your notes, which the tool will automatically schedule for you to review.\n\n## What does it do?\n\nSpare Actre is basically a prompts system. It will scan your notes directory for prompts (see below for what you have to do to make it understand what a prompt it). It will then show you the prompt's question, then the answer when you tell it to. At last it will ask you whether you knew the answer. If you did, it will schedule the prompt for some time in the future. This time will continuously increase until you indicated you didn't know the answer. \n\nIf you didn't know the answer, it'll schedule the prompt with the shortest interval it knows (1 hour) and you start over with that prompt. If you are on a streak, you will always be shown the prompt at least once a year.\n\n## Usage\n\nSpare Actre assumes you have all your notes in one flat directory. It also assumes there's no non-plaintext files in that directory. It will attempt to open each file inside your notes directory, so beware of that. No guarantees are made towards keeping your data instact.\n\nThe first time you use Spare Actre, you will have to create a `learning-data.dhall` file in your notes directory, containing the following:\n\n``` dhall\nlet Review : Type =\n{ time : Text\n, wasKnown : Bool\n}\nlet Prompt : Type =\n{ question : Text\n, answer : Text\n, reviews : List Review\n}\nlet MapEntry : Type =\n{ mapKey : Text\n, mapValue : Prompt\n}\nin\n{ prompts = [] : List Prompt }\n```\n\nThis file is where Spare Actre saves its data to.\n\nThen just execute `$ spare-actre /PATH/TO/YOUR/NOTES/DIRECTORY`, assuming you've added `spare-actre` to your `PATH`.\n\n### Creating Prompts (aka. flashcards)\n\nYou can create prompts by including a block like the following in a plaintext file in your notes directory:\n\n``` org\n#+begin_prompt\nPUT THE FRONT OF THE CARD HERE\n-----\nPUT THE BACK OF THE CARD HERE\n#+end_prompt\n```\n\n## Installation\n\nCurrently spare-actre is not packaged for any distribution. Instead, you will have to compile it yourself:\n\n1. Download and install the `nix` package manager (https://nixos.org/download.html)\n2. In the nix-shell, execute `$ ./full-build.sh`\n   - Warning for mac users: it appears that nix will want to recompile ghc and cabal when doing this on MacOS. This can take somewhere around 16h (sample size 1).\n3. The resulting binary will be in `./result/bin/spare-actre`. Copy this wherever you want and add it to your `PATH`. Or just call it where it is by running: `$ ./result/bin/spare-actre` in the project directory.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeyj0%2Fspare-actre","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeyj0%2Fspare-actre","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeyj0%2Fspare-actre/lists"}