Skip to main content

fstrider is an intuitive and fast file system navigator for terminal.

If you like it click ⭐ on the repo and tweet.

fstrider is:

  • to reduce keystrokes during navigation.
  • to remember and reuse the behavior and choices.
  • to be minimalistic until it's needed to do more.
  • to create new paths without annoying asking.

Install

Before installation read the text below about using / when copying or moving files and directories.

Install or update:

pip install fstrider
# OR: pip install -U git+https://github.com/anki-code/fstrider

Usage

Run fstrider and start striding:

fstrider

In the xonsh shell you can load xontrib with s alias that works fast and allows to change directory using fstrider:

xontrib load fstrider
fs      # or fstrider

Key bindings

Basic:

  • Left - move to parent directory.
  • Right - move to the selected directory.
  • Space - open menu for the current file or directory.
  • Enter - open file or directory using OS associations.
  • Control q - quit.

Additional:

  • Shift ~ - jump to the home directory.
  • Control h - jump to directory from history.
  • Control j - jump to path. You can jump into new path and then create it.
  • Control + - copy path to the current directory.

Midnight Commander bindings: F5 copy, F6 move, F7 rename, F8 delete, F10 quit, F12 open with.

Using / when copying or moving.

fstrider was created to reduce keystrokes. So remember two things:

  • 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.
  • 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.
  • 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.

Xonsh xontrib

fstrider xontrib features:

  • Creates alias fs (or fstrider if fs exists).
  • Run fstrider as fast as possible.
  • Keeps history between running fstrider.

Environment variables for fstrider xontrib:

  • $XONTRIB_FSTRIDER_ALIAS - change the alias name. Recommended s.

Options

  • 'show_symlink_paths': True - show symlinks in the list.
  • 'keys_midnight_commander': True - use Midnight Commander keys.
  • 'monitor_state': False - Async monitoring of the list and update if new files created.
  • 'os_path_change': True - change os path in xonsh shell.
  • 'app_associations_save_file': False - save filename to apps associations.

You can change the option state by setting environment variable e.g. $FSTRIDER_MONITOR_STATE=True.

Known issues

Tested only on Mac OS

Current version of fstrider is using and testing on Mac OS. It will be good to test and fix for Linux and Windows.

Roadmap

Feel free to grab and implement or propose new feature. PR is welcome!

v0.2.0

Xonsh xontrib
    ++ Creates alias `fs` (or `fstrider` if `fs` exists). (0.1.18)
    ++ Run fstrider as fast as possible. (0.1.18)
    ++ Keeps history between running fstrider. (0.1.18)

List
    ++ Async monitoring of the list and update if new files created. (0.1.19)
    ++Add `/` to the end of directory in title and in history. 
    
Configuration
    ++ Read env from `os.env`. See `fstrider.env`. (0.1.19)

Integration
    "=" to move object from path to the current dir.

Tech
    ++ Add list and menu mode.
    Errors processing
        Show errors like in case of exception.
        Process `File exists` error.
    ++ Resolve `/tmp/../../`. (0.1.17)
    Symlinks: copying, moving   
    
    
Style
    Grey style for copy/move and red style for delete dialogue. 
    
Navigation
    Move coursor to the next file after deletion.
    ++ Up key at first option moves cursor to end. (0.1.19)
    ++ Fix left key when go from history.    
    ++ Fix right key when go to file from history.

v0.3.0

Navigation
    Go back to previous directory after moving or copying.
    
List
    Sorting by size/date `sorted(glob.glob('*.png'), key=os.path.getsize)`.
    Modes: short, full (chmod/chown/date). 
    Keep file msg after `invalidate_list`.

Jump
    Use path from clipboard e.g. `text_area.buffer.paste_clipboard_data`.
    Use directories from xonsh history i.e. `__xonsh__.history[-1].cwd`

v0.4.0

Title
    Show chown/chmod if "Access denied".
    Show what part of path is exist and what's new.
    
Dialog
    Autocomplete for paths in menu - the feature from prompt-toolkit.
    Copying progress bar or just the console log from `rsync`.

v0.5.0

List
    Fuzzy search.
    Research: Draggable items i.e. `ls --hyperlink`.
    
Associations
    `.xonshrc` case in app_assoc.
    Highlight known suffix from app_assoc.
    Using $LS_COLORS and `dircolors` for color files.    

v0.6.0

List
    Improve speed of list on big amount of items - 10k+

Waiting for community

Integration
    Other shells support.
    
Key bindings
    The way to change key bindings.
    VI mode, Emacs mode.
    
Style
    Dark style.

Ideas for future

List
    Fake files (items in the list)
        Fake deleted file to show that this file was deleted.
        Interstellar wormhole - path to another path added to this directory.
    Read the path from files in this directory.
    Colors and gradient: by time, by size. Show old files with dark color. Show small files with dark color.
    
Integration
    Catching pasting path from clipboard and ask actions: cd-ing, copy/move from, open.
    Using fstrider for anything e.g. striding around aws s3 bucket, ssh host.
        The way to setup fstrider for special needs: colors, menus, hotkeys.
Keys
    Free keys to use: `/`, `-`.
    
Xonsh shell
    Using xonsh shell history to jump into directories.
    Run shell command in this directory.
        Crazy: use xonsh prompt as a prompt for ptk `TextArea`
AI
    Predict the next choice of path based on history and maybe files in dir.

Good to know

  • Copy the current path in MacOS Finder: Option Command C
  • Jump to path in MacOS Finder: Command Shift G

Metadata

Release files for fstrider 0.1.21

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fstrider 0.1.21
File Size Uploaded Provenance Actions
fstrider-0.1.21.tar.gz 17.4 kB Without provenance Details for fstrider-0.1.21.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fstrider 0.1.21
File Interpreter ABI Platform Actions
fstrider-0.1.21-py3-none-any.whl Python 3 none any Details for fstrider-0.1.21-py3-none-any.whl

Total release size: 33.3 kB

Release files / fstrider-0.1.21.tar.gz

Download URL fstrider-0.1.21.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
85033739c30a3c5d458a81935b4e2e9bcb9271e8d75b153d9c6c742aa65f1bc5
BLAKE2b-256 checksum
How to use checksums
9c26b988dfbaf90e1c743f0c995698fdac3409ab7fb2c7d214250498eb55c572
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Release files / fstrider-0.1.21-py3-none-any.whl

Download URL fstrider-0.1.21-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6863857ff60fc4f5bf9d8362fa7e619d7f1f74cd57b6e92777c0e6c8db382701
BLAKE2b-256 checksum
How to use checksums
f8ecd1da223c9cc28d863300e3415447137f5df05fe88ae0f468494cc2785c45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Security for fstrider 0.1.21

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page