{"id":13638199,"url":"https://github.com/anki-code/fstrider","last_synced_at":"2025-06-24T00:32:02.119Z","repository":{"id":230232285,"uuid":"772009748","full_name":"anki-code/fstrider","owner":"anki-code","description":"Intuitive and fast file system navigator for terminal. Alternative to cd-ls. Written on Python. Zero dependency in pair with xonsh shell.","archived":false,"fork":false,"pushed_at":"2024-05-07T15:17:46.000Z","size":130,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-07T21:44:25.528Z","etag":null,"topics":["console-tool","file-manager","file-system","navigation","navigator","new-tool","new-tools","xonsh","xontrib"],"latest_commit_sha":null,"homepage":"","language":"Python","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/anki-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://github.com/anki-code","https://www.buymeacoffee.com/xxh","https://github.com/xonsh/xonsh#the-xonsh-shell-community"]}},"created_at":"2024-03-14T11:11:18.000Z","updated_at":"2024-10-18T17:02:48.000Z","dependencies_parsed_at":"2024-03-28T15:29:03.999Z","dependency_job_id":"7a126c7f-facd-4558-8794-6f136a0bce97","html_url":"https://github.com/anki-code/fstrider","commit_stats":null,"previous_names":["anki-code/fstrider"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/anki-code/fstrider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anki-code%2Ffstrider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anki-code%2Ffstrider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anki-code%2Ffstrider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anki-code%2Ffstrider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anki-code","download_url":"https://codeload.github.com/anki-code/fstrider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anki-code%2Ffstrider/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261582652,"owners_count":23180634,"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":["console-tool","file-manager","file-system","navigation","navigator","new-tool","new-tools","xonsh","xontrib"],"created_at":"2024-08-02T01:00:41.640Z","updated_at":"2025-06-24T00:32:02.099Z","avatar_url":"https://github.com/anki-code.png","language":"Python","funding_links":["https://github.com/anki-code","https://www.buymeacoffee.com/xxh","https://github.com/xonsh/xonsh#the-xonsh-shell-community"],"categories":["Directory Navigation"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cb\u003efstrider\u003c/b\u003e is an intuitive and fast file system navigator for terminal.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e  \n\u003cimg src=\"https://repository-images.githubusercontent.com/772009748/a54b45b5-0dbc-4eef-81b1-11d618c6f9e1\" width=\"50%\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e  \nIf you like it click ⭐ on the repo and \u003ca href=\"https://twitter.com/intent/tweet?text=Nice%20file%20system%20navigator!\u0026url=https://github.com/anki-code/fstrider\" target=\"_blank\"\u003etweet\u003c/a\u003e.\n\u003c/p\u003e\n\n\n**fstrider** is:\n* to reduce keystrokes during navigation.\n* to remember and reuse the behavior and choices.\n* to be minimalistic until it's needed to do more.\n* to create new paths without annoying asking.\n\n\n## Install\n\nBefore installation read the text below about using `/` when copying or moving files and directories.\n\nInstall or update:\n\n```xsh\npip install fstrider\n# OR: pip install -U git+https://github.com/anki-code/fstrider\n```\n\n## Usage\nRun fstrider and start striding:\n```xsh\nfstrider\n```\n\nIn the xonsh shell you can load xontrib with `fs` alias that works fast and allows to change directory using fstrider:\n```xsh\nxontrib load fstrider\nfs      # or fstrider\n```\n\n### Key bindings\n\nBasic:\n\n* \u003ckbd\u003eLeft\u003c/kbd\u003e - move to parent directory.\n* \u003ckbd\u003eRight\u003c/kbd\u003e - move to the selected directory.\n* \u003ckbd\u003eSpace\u003c/kbd\u003e - open menu for the current file or directory.\n* \u003ckbd\u003eEnter\u003c/kbd\u003e - open file or directory using OS associations.\n* \u003ckbd\u003eControl q\u003c/kbd\u003e - quit.\n\nAdditional:\n\n* \u003ckbd\u003eShift ~\u003c/kbd\u003e - jump to the home directory.\n* \u003ckbd\u003eControl h\u003c/kbd\u003e - jump to directory from history.\n* \u003ckbd\u003eControl j\u003c/kbd\u003e - jump to path. You can jump into new path and then create it.\n* \u003ckbd\u003eControl +\u003c/kbd\u003e - copy path to the current directory.\n\nMidnight Commander bindings: \u003ckbd\u003eF5\u003c/kbd\u003e copy, \u003ckbd\u003eF6\u003c/kbd\u003e move, \u003ckbd\u003eF7\u003c/kbd\u003e rename, \u003ckbd\u003eF8\u003c/kbd\u003e delete, \u003ckbd\u003eF10\u003c/kbd\u003e quit, \u003ckbd\u003eF12\u003c/kbd\u003e open with.\n\n### Using `/` when copying or moving.\n\nfstrider was created to reduce keystrokes. So remember two things:\n* Any new path will be created automatically. When you copy the file `example.txt` to `/tmp/some/new/path/` the path `/tmp/some/new/path/` will be created automatically.\n* If you copy directory `/tmp/dir1` and the target path ends with `/` e.g. `/tmp/other/` then the `dir1` will be putted into `/tmp/other/dir`.\n* If you copy directory `/tmp/dir2` and the target path ends with directory name e.g. `/tmp/other` then the `dir2` will be merged with `/tmp/other`. Existing files will be overwritten.\n\n## Xonsh xontrib\n\nfstrider xontrib features:\n* Creates alias `fs` (or `fstrider` if `fs` exists).\n* Run fstrider as fast as possible.\n* Keeps history between running fstrider.\n\nEnvironment variables for fstrider xontrib:\n* `$XONTRIB_FSTRIDER_ALIAS` - change the alias name. Recommended `s`.\n\n## Options\n\n* `'show_symlink_paths': True` - show symlinks in the list.\n* `'keys_midnight_commander': True` - use Midnight Commander keys.\n* `'monitor_state': False` - Async monitoring of the list and update if new files created.\n* `'os_path_change': True` - change os path in xonsh shell.\n* `'app_associations_save_file': False` - save filename to apps associations.\n\nYou can change the option state by setting environment variable e.g. `$FSTRIDER_MONITOR_STATE=True`.\n\n## Known issues\n\n### Tested only on Mac OS\n\nCurrent version of fstrider is using and testing on Mac OS. It will be good to test and fix for Linux and Windows.\n\n## Roadmap\n\nFeel free to grab and implement or propose new feature. PR is welcome!\n\n### v0.2.0\n```\nXonsh xontrib\n    ++ Creates alias `fs` (or `fstrider` if `fs` exists). (0.1.18)\n    ++ Run fstrider as fast as possible. (0.1.18)\n    ++ Keeps history between running fstrider. (0.1.18)\n\nList\n    ++ Async monitoring of the list and update if new files created. (0.1.19)\n    ++Add `/` to the end of directory in title and in history. \n    \nConfiguration\n    ++ Read env from `os.env`. See `fstrider.env`. (0.1.19)\n\nIntegration\n    \"=\" to move object from path to the current dir.\n\nTech\n    ++ Add list and menu mode.\n    Errors processing\n        Show errors like in case of exception.\n        Process `File exists` error.\n    ++ Resolve `/tmp/../../`. (0.1.17)\n    Symlinks: copying, moving   \n    \n    \nStyle\n    Grey style for copy/move and red style for delete dialogue. \n    \nNavigation\n    Move coursor to the next file after deletion.\n    ++ Up key at first option moves cursor to end. (0.1.19)\n    ++ Fix left key when go from history.    \n    ++ Fix right key when go to file from history.\n```\n\n### v0.3.0\n\n```\nNavigation\n    Key+Left - Go back to previous screen after moving/copying/etc.\n    \nList\n    Sorting by size/date `sorted(glob.glob('*.png'), key=os.path.getsize)`.\n    Modes: short, full (chmod/chown/date). \n    Keep file msg after `invalidate_list`.\n\nJump\n    Use path from clipboard e.g. `text_area.buffer.paste_clipboard_data`.\n    Use directories from xonsh history i.e. `__xonsh__.history[-1].cwd`\n```\n\n### v0.4.0\n```\nTitle\n    Show chown/chmod if \"Access denied\".\n    Show what part of path is exist and what's new.\n    \nDialog\n    Autocomplete for paths in menu - the feature from prompt-toolkit.\n    Copying progress bar or just the console log from `rsync`.\n```\n\n### v0.5.0\n```\nList\n    Fuzzy search.\n    Research: Draggable items i.e. `ls --hyperlink`.\n    \nAssociations\n    `.xonshrc` case in app_assoc.\n    Highlight known suffix from app_assoc.\n    Using $LS_COLORS and `dircolors` for color files.    \n```\n\n### v0.6.0\n```\nList\n    Improve speed of list on big amount of items - 10k+\n```\n\n### Waiting for community\n\n```\nIntegration\n    Other shells support.\n    \nKey bindings\n    The way to change key bindings.\n    VI mode, Emacs mode.\n    \nStyle\n    Dark style.\n```\n\n### Ideas for future\n```\nList\n    Fake files (items in the list)\n        Fake deleted file to show that this file was deleted.\n        Interstellar wormhole - path to another path added to this directory.\n    Read the path from files in this directory.\n    Colors and gradient: by time, by size. Show old files with dark color. Show small files with dark color.\n    \nIntegration\n    Catching pasting path from clipboard and ask actions: cd-ing, copy/move from, open.\n    Using fstrider for anything e.g. striding around aws s3 bucket, ssh host.\n        The way to setup fstrider for special needs: colors, menus, hotkeys.\nKeys\n    Free keys to use: `/`, `-`.\n    \nXonsh shell\n    Using xonsh shell history to jump into directories.\n    Run shell command in this directory.\n        Crazy: use xonsh prompt as a prompt for ptk `TextArea`\nAI\n    Predict the next choice of path based on history and maybe files in dir.\n```\n\n## Good to know\n\n* Copy the current path in MacOS Finder: \u003ckbd\u003eOption Command C\u003c/kbd\u003e\n* Jump to path in MacOS Finder: \u003ckbd\u003eCommand Shift G\u003c/kbd\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanki-code%2Ffstrider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanki-code%2Ffstrider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanki-code%2Ffstrider/lists"}