<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Md Shahed Rahman</title>
    <description>The latest articles on DEV Community by Md Shahed Rahman (@sahedwave).</description>
    <link>https://dev.to/sahedwave</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3905693%2F5c56bf56-d93f-46a5-aa4a-fba1d116b78d.png</url>
      <title>DEV Community: Md Shahed Rahman</title>
      <link>https://dev.to/sahedwave</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sahedwave"/>
    <language>en</language>
    <item>
      <title>I built a terminal file picker to remove context switching between editor and shell</title>
      <dc:creator>Md Shahed Rahman</dc:creator>
      <pubDate>Thu, 30 Apr 2026 08:24:25 +0000</pubDate>
      <link>https://dev.to/sahedwave/i-built-a-terminal-file-picker-to-remove-context-switching-between-editor-and-shell-11k5</link>
      <guid>https://dev.to/sahedwave/i-built-a-terminal-file-picker-to-remove-context-switching-between-editor-and-shell-11k5</guid>
      <description>&lt;p&gt;The problem&lt;/p&gt;

&lt;p&gt;When working on projects, I constantly found myself switching between:&lt;/p&gt;

&lt;p&gt;terminal → to run commands or navigate&lt;br&gt;
editor → to open and edit files&lt;/p&gt;

&lt;p&gt;For large projects, this became even more annoying:&lt;/p&gt;

&lt;p&gt;file trees get messy&lt;br&gt;
searching inside IDE explorers slows me down&lt;br&gt;
opening an editor just to change a few lines feels heavy&lt;/p&gt;

&lt;p&gt;That context switching breaks flow more than it should.&lt;/p&gt;

&lt;p&gt;The idea&lt;/p&gt;

&lt;p&gt;I wanted a simple workflow:&lt;/p&gt;

&lt;p&gt;Stay in the terminal → find a file → edit it → save → continue&lt;/p&gt;

&lt;p&gt;So I built a CLI tool that combines:&lt;/p&gt;

&lt;p&gt;file search&lt;br&gt;
file selection&lt;br&gt;
inline editing&lt;/p&gt;

&lt;p&gt;all inside the terminal.&lt;/p&gt;

&lt;p&gt;What it does&lt;/p&gt;

&lt;p&gt;The tool lets you:&lt;/p&gt;

&lt;p&gt;type part of a filename&lt;br&gt;
instantly see matching files with full paths&lt;br&gt;
navigate using arrow keys&lt;br&gt;
select a file&lt;br&gt;
edit it directly in the terminal&lt;br&gt;
choose between:&lt;br&gt;
overwrite mode&lt;br&gt;
append mode&lt;/p&gt;

&lt;p&gt;No editor launch. No switching context.&lt;/p&gt;

&lt;p&gt;Example workflow&lt;br&gt;
terminal-file-picker&lt;br&gt;
enter project directory (. for current)&lt;br&gt;
type to filter files&lt;br&gt;
press Enter → focus results&lt;br&gt;
navigate with ↑ ↓&lt;br&gt;
select a file&lt;br&gt;
edit inline&lt;br&gt;
type :done to save&lt;br&gt;
Why not just use existing tools?&lt;br&gt;
Traditional editors (VS Code, etc.)&lt;br&gt;
powerful but heavy for quick edits&lt;br&gt;
File explorers&lt;br&gt;
don’t support inline editing&lt;br&gt;
CLI tools like fzf&lt;br&gt;
great for selection&lt;br&gt;
but don’t include editing&lt;/p&gt;

&lt;p&gt;This tool focuses on fast, small edits without leaving the terminal.&lt;/p&gt;

&lt;p&gt;Tech stack&lt;br&gt;
Python&lt;br&gt;
Textual (for terminal UI)&lt;/p&gt;

&lt;p&gt;Textual made it possible to build a responsive keyboard-driven interface without dealing with low-level terminal handling.&lt;/p&gt;

&lt;p&gt;Installation&lt;br&gt;
pip install terminal-file-picker&lt;br&gt;
Project link&lt;/p&gt;

&lt;p&gt;PyPI:&lt;br&gt;
&lt;a href="https://pypi.org/project/terminal-file-picker/" rel="noopener noreferrer"&gt;https://pypi.org/project/terminal-file-picker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sahedwave/terminal-file-picker" rel="noopener noreferrer"&gt;https://github.com/sahedwave/terminal-file-picker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s next&lt;/p&gt;

&lt;p&gt;I’m planning to improve:&lt;/p&gt;

&lt;p&gt;fuzzy search (better matching)&lt;br&gt;
UI responsiveness&lt;br&gt;
editing experience&lt;br&gt;
possibly adding a preview pane&lt;br&gt;
Final thought&lt;/p&gt;

&lt;p&gt;This started as a small utility for myself, but it turned into something I now use regularly.&lt;/p&gt;

&lt;p&gt;If you work heavily in the terminal, I’d be interested to know:&lt;/p&gt;

&lt;p&gt;Would you use something like this, or is switching to an editor still preferable?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cf7cdrfqz0exl3fgfl7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cf7cdrfqz0exl3fgfl7.png" alt=" " width="800" height="960"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>cli</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
