{"id":30305335,"url":"https://github.com/andrewferrier/memy","last_synced_at":"2026-02-23T20:30:35.484Z","repository":{"id":304490273,"uuid":"1018935777","full_name":"andrewferrier/memy","owner":"andrewferrier","description":"Track and recall frequently and recently used files or directories","archived":false,"fork":false,"pushed_at":"2025-12-30T15:34:45.000Z","size":384,"stargazers_count":11,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T09:50:16.982Z","etag":null,"topics":["cli","rust","tracker"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/andrewferrier.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":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-07-13T11:33:43.000Z","updated_at":"2025-12-30T15:34:26.000Z","dependencies_parsed_at":"2025-07-20T14:26:51.008Z","dependency_job_id":"cc87c7e9-c892-4729-a945-fa33dca272ea","html_url":"https://github.com/andrewferrier/memy","commit_stats":null,"previous_names":["andrewferrier/memy"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/andrewferrier/memy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewferrier%2Fmemy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewferrier%2Fmemy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewferrier%2Fmemy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewferrier%2Fmemy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewferrier","download_url":"https://codeload.github.com/andrewferrier/memy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewferrier%2Fmemy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28736510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T19:23:36.361Z","status":"ssl_error","status_checked_at":"2026-01-24T19:23:28.966Z","response_time":89,"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":["cli","rust","tracker"],"created_at":"2025-08-17T08:08:54.302Z","updated_at":"2026-02-23T20:30:35.467Z","avatar_url":"https://github.com/andrewferrier.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# memy\n\n![Tests](https://github.com/andrewferrier/memy/actions/workflows/tests.yml/badge.svg)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./logo.svg\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cstrong\u003e\u003ca href=\"https://youtu.be/YKfYz_56nkg\"\u003eYouTube Demo\u003c/a\u003e\u003c/strong\u003e\n\u003cbr/\u003e\n\u003c/p\u003e\n\n**memy** is a modern, fast, and simple command-line tool to help you track and recall the files and directories you use most often. Many similar tools support only directories, **but memy supports files too**. Inspired by [fasd](https://github.com/whjvenyl/fasd), memy (with the aid of hooks into your favourite tools) remembers the paths you interact with, lists them back to you by a combination of frequency and recency (\"frecency\"), and makes it easy to build a workflow around them using standard Linux/Unix tools. memy is written using Rust and a SQLite backend for speed and scalability.\n\nUnlike tools such as [zoxide](https://github.com/ajeetdsouza/zoxide), memy is less focused on providing a direct \"jump\" command for navigating directories. Instead, memy is designed to be a flexible backend for tracking your usage, which you can combine with tools like [`fzf`](https://github.com/junegunn/fzf) and `cd` to jump around directories if you wish. Crucially, memy also supports tracking files you use - not just directories - unlike most other tools in this space (except for `fasd`, which for a longer time was not maintained).\n\nmemy is ideal for developers, sysadmins, CLI power users, and anyone who works with many files and directories and wants a smarter way to recall them.\n\nCurrently, memy has been tested on Linux and MacOS (limited). It has not been tested on Windows, any testing or feedback would be appreciated. For transparency, `memy` is partially created using AI assistance - all code changes are overseen by a human maintainer!\n\n## Quick Start\n\n- Note a file or directory:\n\n  ```sh\n  memy note \u003cpath\u003e\n  ```\n\n  You are free to note a path whenever you wish, although typically this is done by the supplied hooks (see more information below).\n\n- List all remembered paths (in frecency order):\n\n  ```sh\n  memy list\n  ```\n\n  (`ls` is an alias for `list`, so `memy ls` works too.)\n\n- Open a recently used file in your editor, selecting it using `fzf` (assuming your editor is `vim`).\n\n  ```sh\n  memy list -f | fzf | sed \"s|^~|$HOME|\" | xargs vim\n  ```\n\n- Change to a directory from your remembered paths using [fzf](https://github.com/junegunn/fzf) as a wrapper:\n\n  ```sh\n  selected=$(memy list -d | fzf); [[ -n \"$selected\" ]] \u0026\u0026 cd \"${selected/#\\~/$HOME}\"\n\n  # (or just 'memy-cd' if you have the bash/zsh/fish hook installed)\n  ```\n\n- Change to the most frecent directory containing the string 'download' (case-insensitive):\n\n  ```sh\n  cd $(memy list -d | grep -i download | tail -1 | sed \"s|^~|$HOME|\")\n  ```\n\n- (On Linux) Open a recently used path in your GUI file manager:\n\n  ```sh\n  memy list -f | fzf | sed \"s|^~|$HOME|\" | xargs xdg-open\n  ```\n\nMany of these more advanced tricks would work well configured as [shell aliases](https://linuxize.com/post/how-to-create-bash-aliases/).\n\n`memy` will import your database from [fasd](https://github.com/whjvenyl/fasd), [autojump](https://github.com/wting/autojump) and/or [zoxide](https://github.com/ajeetdsouza/zoxide), if there is one, on first run (this behaviour can be disabled in the configuration file).\n\n## Noting files automatically using hooks\n\nHooks in memy are scripts or other configuration files provided with memy that can be embedded into other tools' configurations. These hooks allow you to automatically note files as they are used, opened, or interacted with, integrating memy seamlessly into your workflow.\n\nFor example, you might use a hook to automatically note files opened in your text editor or accessed via the command line, or directories you change to in your shell. Hooks are designed to be a starting point only and can be customized to suit your specific needs and preferences. Over time, we plan to grow the list of hooks available. Any contributions to the predefined hooks available would be very welcome as issues or pull requests [on this repository](https://github.com/andrewferrier/memy).\n\n### Using Hooks\n\nTo see the list of current hooks provided by memy, type `memy hook`.\n\nTo see the contents of a hook, type `memy hook \u003chookname\u003e`. In future, we'll provide an easier way to [automatically install some hooks](https://github.com/andrewferrier/memy/issues/53). For now, the provided hooks can be installed like this (please be careful to make sure you backup any configuration files etc. before running these commands to avoid mishaps):\n\n| Tool   | How to Install                                              |\n| ------ | ----------------------------------------------------------- |\n| bash   | Run `echo 'source \u003c(memy hook bash)' \u003e\u003e ~/.bashrc`          |\n| fish   | Run `memy hook fish.fish \u003e\u003e ~/.config/fish/config.fish`     |\n| lfrc   | Run `memy hook lfrc \u003e\u003e ~/.config/lf/lfrc`                   |\n| neovim | Run `memy hook neovim.lua \u003e ~/.config/nvim/plugin/memy.lua` |\n| ranger | Run `memy hook ranger.rc.conf \u003e\u003e ~/.config/ranger/rc.conf`  |\n| vim    | Run `memy hook vim.vim \u003e ~/.vim/plugin/memy.vim`            |\n| zsh    | Run `echo 'eval $(memy hook zsh)' \u003e\u003e ~/.zshrc`              |\n\n## Installation\n\n### Automated Install using Shell Script\n\nUse single shell script to install:\n\n```\ncurl -sSL https://raw.githubusercontent.com/andrewferrier/memy/main/install.sh | sh\n```\n\n### Download .deb-based package for Debian / Ubuntu\n\n- [x86_64/amd64](https://github.com/andrewferrier/memy/releases/latest/download/memy_latest_amd64.deb)\n\n- [ARM64](https://github.com/andrewferrier/memy/releases/latest/download/memy_latest_arm64.deb)\n\n[Install using dpkg or apt](https://unix.stackexchange.com/a/159114/18985). Currently, Debian packages are not in a signed repository.\n\n### Download .rpm-based package for RHEL / Fedora / CentOS / OpenSUSE / SLES\n\n- [x86_64/amd64](https://github.com/andrewferrier/memy/releases/latest/download/memy_latest_amd64.rpm)\n\n- [ARM64](https://github.com/andrewferrier/memy/releases/latest/download/memy_latest_arm64.rpm)\n\n[How to install RPMs](https://phoenixnap.com/kb/how-to-install-rpm-file-centos-linux).\n\n### Download Binaries for Linux or MacOS from GitHub\n\n- [Linux (x86_64)](https://github.com/andrewferrier/memy/releases/latest/download/memy-linux-x86_64)\n\n- [Linux (x86_64) - Static Binary using musl](https://github.com/andrewferrier/memy/releases/latest/download/memy-linux-x86_64-musl)\n\n- [Linux (ARM64)](https://github.com/andrewferrier/memy/releases/latest/download/memy-linux-aarch64)\n\n- [Linux (ARM64) - Static Binary using musl](https://github.com/andrewferrier/memy/releases/latest/download/memy-linux-aarch64-musl)\n\nThe binaries for MacOS are not currently signed, and so [you will have to work around this](https://www.macworld.com/article/672947/how-to-open-a-mac-app-from-an-unidentified-developer.html).\n\n- [MacOS (Apple Silicon)](https://github.com/andrewferrier/memy/releases/latest/download/memy-macos-aarch64)\n- [MacOS (Intel)](https://github.com/andrewferrier/memy/releases/latest/download/memy-macos-x86_64)\n\nDownload the appropriate binary for your platform, place it somewhere in your `$PATH`, and make it executable if necessary. For example:\n\n```sh\nchmod +x memy-\u003cplatform-arch\u003e\nmv memy-\u003cplatform-arch\u003e /usr/local/bin/memy\n```\n\n### Install via Cargo (from Source)\n\nIf you have [Cargo](https://doc.rust-lang.org/cargo/) installed, you can install memy directly from the very latest source (main branch). This version may have more recent changes than the packaged versions linked above and so may be more unstable.\n\n```sh\ncargo install --git https://github.com/andrewferrier/memy\n```\n\nDon't have Cargo? It's Rust's package manager and build tool. The easiest way to get Cargo (and Rust) is to use [rustup](https://rustup.rs/), which works on Linux, macOS, and Windows. See [the official instructions](https://doc.rust-lang.org/cargo/getting-started/installation.html).\n\n## Configuration \u0026 Under the Hood\n\nBy default, memy looks for its config file at `$XDG_CONFIG_HOME/memy/memy.toml` (typically `~/.config/memy/memy.toml`). You can override the config location by setting the `MEMY_CONFIG_DIR` environment variable to a directory of your choice.\n\nIf you don't already have a config file, you can create a default/template one in the default location like this (be careful not to overwrite one that already exists):\n\n```sh\nmemy generate-config \u003e ~/.config/memy/memy.toml\n```\n\nThe config file will be annotated with comments explaining what each option does.\n\nBy default, memy stores its database in `$XDG_STATE_HOME/memy/memy.sqlite3` (typically `~/.local/state/memy/memy.sqlite3`). You can override the database location by setting the `MEMY_DB_DIR` environment variable to a directory of your choice.\n\n## More Information\n\n- For a full list of commands and flags, run `memy --help`. If you are using one of the `.deb`-packaged versions of memy, you can also bring up the manpage: `man memy`.\n\n- For release notes, see [CHANGELOG.md](CHANGELOG.md)\n\n- Issues and contributions welcome at [https://github.com/andrewferrier/memy](https://github.com/andrewferrier/memy)\n\n## Comparison with Similar Tools\n\nHere's how **memy** compares to other popular directory/file jump and tracking tools:\n\n| Feature                 | [memy](https://github.com/andrewferrier/memy)                                            | [zoxide](https://github.com/ajeetdsouza/zoxide)                                          | [autojump](https://github.com/wting/autojump)                                        | [z](https://github.com/rupa/z)                                               | [fasd](https://github.com/whjvenyl/fasd)                                            | [fasder](https://github.com/clarity20/fasder)                                          |\n| ----------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |\n| **Platforms supported** | ✅ (Linux, macOS)                                                                        | ✅ (Linux, macOS, Windows)                                                               | ✅ (Linux, macOS, Windows)                                                           | ✅ (Linux, macOS, Windows)                                                   | ✅ (Linux, macOS, Windows)                                                          | ✅ (Linux, macOS, Windows)                                                             |\n| **Tracks Files**        | ✅                                                                                       | ❌                                                                                       | ❌                                                                                   | ❌                                                                           | ✅                                                                                  | ✅                                                                                     |\n| **Tracks Directories**  | ✅                                                                                       | ✅                                                                                       | ✅                                                                                   | ✅                                                                           | ✅                                                                                  | ✅                                                                                     |\n| **Actively Maintained** | ![Last commit](https://img.shields.io/github/last-commit/andrewferrier/memy?logo=github) | ![Last commit](https://img.shields.io/github/last-commit/ajeetdsouza/zoxide?logo=github) | ![Last commit](https://img.shields.io/github/last-commit/wting/autojump?logo=github) | ![Last commit](https://img.shields.io/github/last-commit/rupa/z?logo=github) | ![Last commit](https://img.shields.io/github/last-commit/whjvenyl/fasd?logo=github) | ![Last commit](https://img.shields.io/github/last-commit/clarity20/fasder?logo=github) |\n| **Customizable**        | ✅ (TOML config)                                                                         | ✅ (config file \u0026 env vars)                                                              | ✅ (Some)                                                                            | ❌ (Limited)                                                                 | ❌ (Limited)                                                                        | ✅ (config file \u0026 env vars)                                                            |\n| **Database Format**     | SQLite                                                                                   | SQLite                                                                                   | Text                                                                                 | Text                                                                         | Text                                                                                | Text                                                                                   |\n| **Written in**          | Rust                                                                                     | Rust                                                                                     | Python                                                                               | Shell                                                                        | Shell                                                                               | Go                                                                                     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewferrier%2Fmemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewferrier%2Fmemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewferrier%2Fmemy/lists"}