{"id":13558798,"url":"https://github.com/techwizrd/fishmarks","last_synced_at":"2026-03-13T06:01:07.597Z","repository":{"id":8572870,"uuid":"10202026","full_name":"techwizrd/fishmarks","owner":"techwizrd","description":"Bookmark and jump to directories faster than a sailfish! Fishmarks is a clone of bashmarks for the Fish shell.","archived":false,"fork":false,"pushed_at":"2026-03-05T05:02:20.000Z","size":59,"stargazers_count":116,"open_issues_count":6,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-05T09:56:28.556Z","etag":null,"topics":["fish","fish-plugin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/techwizrd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-05-21T18:04:27.000Z","updated_at":"2026-03-05T05:02:17.000Z","dependencies_parsed_at":"2022-09-17T12:50:22.245Z","dependency_job_id":null,"html_url":"https://github.com/techwizrd/fishmarks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/techwizrd/fishmarks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techwizrd%2Ffishmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techwizrd%2Ffishmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techwizrd%2Ffishmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techwizrd%2Ffishmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techwizrd","download_url":"https://codeload.github.com/techwizrd/fishmarks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techwizrd%2Ffishmarks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"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":["fish","fish-plugin"],"created_at":"2024-08-01T12:05:09.734Z","updated_at":"2026-03-13T06:01:07.591Z","avatar_url":"https://github.com/techwizrd.png","language":"Shell","funding_links":[],"categories":["Shell","others"],"sub_categories":[],"readme":"# fishmarks\n\n[![CI](https://github.com/techwizrd/fishmarks/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/techwizrd/fishmarks/actions/workflows/ci.yml?query=branch%3Amaster)\n[![GitHub Release](https://img.shields.io/github/v/release/techwizrd/fishmarks?sort=semver)](https://github.com/techwizrd/fishmarks/releases)\n[![Fish 3+](https://img.shields.io/badge/fish-3%2B-4AAE46)](https://fishshell.com/)\n[![SemVer](https://img.shields.io/badge/versioning-semver-3f4551)](https://semver.org/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\nFishmarks is a clone of [bashmarks](https://github.com/huyng/bashmarks) for the\n[Fish shell](https://fishshell.com/). Fishmarks is compatible with existing bashmarks,\nand bookmarks added using fishmarks are also available in bashmarks.\n\n## Demo\n\n![fishmarks demo](.github/assets/fishmarks-demo.gif)\n\nThis demo is recorded with [asciinema](https://asciinema.org/) and rendered with\n[agg](https://github.com/asciinema/agg).\n\n## Installation\n\n### Automatic Installation\n\nTo install fishmarks automatically, paste the following in your terminal.\n\n```fish\ncurl -fsSL https://raw.githubusercontent.com/techwizrd/fishmarks/master/install.fish | fish\n```\n\nPlease note that you should _never_ install things by piping untrusted install scripts\ndownloaded through `curl` directly into your shell (whether `bash` or `fish`).\nEven if you read through the install script and think you understand it, you could still\nbe prone to a\n[man-in-the-middle](https://en.wikipedia.org/wiki/Man-in-the-middle_attack) attack\nor other security vulnerabilities.\nWhile manual installations are tedious, they are recommended for situations where\nsecurity is a concern (and it should almost always be a concern).\n\n### Fisher Installation\n\nIf you use [Fisher](https://github.com/jorgebucaran/fisher), install fishmarks with:\n\n```fish\nfisher install techwizrd/fishmarks\n```\n\n### Fundle Installation\n\nIf you use [Fundle](https://github.com/danhper/fundle), add fishmarks to your fish config:\n\n```fish\nfundle plugin 'techwizrd/fishmarks'\nfundle init\n```\n\nThen install plugins:\n\n```fish\nfundle install\n```\n\nFish plugin managers load fishmarks from `functions/`, `conf.d/`, and `completions/`.\nThe top-level `marks.fish` file remains as a compatibility loader\nfor existing manual installs.\n\n### Manual Installation\n\nTo install fishmarks manually:\n\n1. Clone fishmarks into `~/.fishmarks`.\n\n```fish\ngit clone https://github.com/techwizrd/fishmarks.git ~/.fishmarks\n```\n\n1. Source `~/.fishmarks/marks.fish` from a file in `~/.config/fish/conf.d/`.\n\n```fish\nmkdir -p ~/.config/fish/conf.d\nprintf '# Load fishmarks (https://github.com/techwizrd/fishmarks)\\n' \\\n  'source ~/.fishmarks/marks.fish\\n' \u003e ~/.config/fish/conf.d/fishmarks.fish\n```\n\n### Update to the latest version\n\nTo update to the latest version of fishmarks:\n\n1. Navigate to the directory where fishmarks is installed (`~/.fishmarks` by default).\n\n```fish\ncd ~/.fishmarks\n```\n\n1. Use git to fetch the latest version.\n\n```fish\ngit fetch --all\n```\n\n1. Pull the latest version.\n\n```fish\ngit pull --ff-only\n```\n\n## Usage\n\n### Commands\n\n```text\nsave_bookmark [--force] [bookmark_name] (or s) - Saves the current directory as \"bookmark_name\"\nrename_bookmark \u003cold_name\u003e \u003cnew_name\u003e - Renames an existing bookmark\nbookmark_exists \u003cbookmark_name\u003e - Returns success if bookmark exists\ngo_to_bookmark \u003cbookmark_name\u003e (or g) - Goes (cd) to the directory associated with \"bookmark_name\"\nprint_bookmark \u003cbookmark_name\u003e (or p) - Prints the directory associated with \"bookmark_name\"\ndelete_bookmark \u003cbookmark_name\u003e (or d) - Deletes the bookmark\nlist_bookmarks [--names-only] (or l) - Lists all available bookmarks\nfishmarks_doctor - Checks bookmarks file for common issues\nfishmarks_version - Prints the installed fishmarks version\n```\n\n### Configuration Variables\n\nAll variables must be set before `marks.fish` is sourced in fish startup files.\n\n- `SDIRS` - default: `~/.sdirs`; location where bookmarks are stored.\n- `NO_FISHMARKS_COMPAT_ALIASES` - disable bashmark-compatible aliases such as `p`.\n\n### Example\n\n```text\n[~]$ cd /var/www/\n[/var/www]$ s webfolder\n[/usr/local/lib]$ cd /usr/local/lib/\n[/usr/local/lib]$ s locallib\n[/usr/local/lib]$ l\nlocallib             /usr/local/lib\nwebfolder            /var/www\n[/usr/local/lib]$ g webfolder\n[/var/www]$\n```\n\n## Running tests\n\nRun the test suite with:\n\n```fish\nfish tests/run.fish\n```\n\nRun syntax and formatting checks with:\n\n```fish\nfish tests/check.fish\n```\n\nOr with make:\n\n```sh\nmake check\n```\n\nRun all checks and tests with:\n\n```sh\nmake test\n```\n\n## Development workflow\n\nInstall [prek](https://prek.j178.dev/latest/) (or pre-commit) hooks locally:\n\n```fish\nprek install\n```\n\nRun all hooks on demand:\n\n```fish\nprek run --all-files\n```\n\nGitHub Actions CI runs checks (`tests/check.fish`, `tests/run.fish`), installer smoke tests,\nand plugin-manager smoke tests for Fisher and Fundle on every push and pull request.\n\n## Versioning\n\nfishmarks follows [Semantic Versioning](https://semver.org/).\nNotable changes are tracked in `CHANGELOG.md`.\n\n### Contributing\n\nSee `CONTRIBUTING.md` for setup, validation commands, and pull request guidelines.\n\n## License\n\nCopyright 2013-present Kunal Sarkhel\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at `https://www.apache.org/licenses/LICENSE-2.0`.\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechwizrd%2Ffishmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechwizrd%2Ffishmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechwizrd%2Ffishmarks/lists"}