<?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: Mike Buyco</title>
    <description>The latest articles on DEV Community by Mike Buyco (@mbuyco).</description>
    <link>https://dev.to/mbuyco</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F352108%2F8735f078-1482-4977-affd-06f86a99225f.png</url>
      <title>DEV Community: Mike Buyco</title>
      <link>https://dev.to/mbuyco</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbuyco"/>
    <language>en</language>
    <item>
      <title>Using Claude Code with OpenRouter via `claude-code-router` on Linux</title>
      <dc:creator>Mike Buyco</dc:creator>
      <pubDate>Mon, 29 Jun 2026 08:13:52 +0000</pubDate>
      <link>https://dev.to/mbuyco/using-claude-code-with-openrouter-via-claude-code-router-on-linux-1f8p</link>
      <guid>https://dev.to/mbuyco/using-claude-code-with-openrouter-via-claude-code-router-on-linux-1f8p</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Claude Code is Anthropic's powerful command-line coding assistant that brings AI directly into your terminal, while OpenRouter is an API aggregator that provides access to multiple AI models through a unified interface. The &lt;code&gt;claude-code-router&lt;/code&gt; package bridges these two tools, allowing you to route Claude Code requests through OpenRouter instead of Anthropic's direct API.&lt;/p&gt;

&lt;p&gt;This guide covers installation and configuration on Linux systems only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before beginning, ensure your system meets these requirements:&lt;/p&gt;

&lt;h3&gt;
  
  
  System Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OS&lt;/strong&gt;: Any modern Linux distribution (Ubuntu 20.04+, Debian 11+, Fedora 36+, Arch Linux, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt;: Version 18.0.0 or higher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm&lt;/strong&gt;: Version 8.0.0 or higher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt;: For cloning repositories if needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Verify Your Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check Node.js version&lt;/span&gt;
node &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# Check npm version&lt;/span&gt;
npm &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# Check Git version&lt;/span&gt;
git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Node.js is not installed or outdated, install it using your distribution's package manager or NodeSource:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Ubuntu/Debian - Using NodeSource&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://deb.nodesource.com/setup_20.x | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nodejs

&lt;span class="c"&gt;# Fedora&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install &lt;/span&gt;nodejs npm

&lt;span class="c"&gt;# Arch Linux&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; nodejs npm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Obtaining an OpenRouter API Key
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;a href="https://openrouter.ai" rel="noopener noreferrer"&gt;openrouter.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create an account or sign in&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Keys&lt;/strong&gt; in your account dashboard&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Key&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy the generated API key and store it securely&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Installing &lt;code&gt;claude-code-router&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;claude-code-router&lt;/code&gt; package should be installed globally alongside Anthropic's official CLI tool.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; claude-code-router @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Environment Variables
&lt;/h3&gt;

&lt;p&gt;Create or edit your shell configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# For Bash&lt;/span&gt;
nano ~/.bashrc

&lt;span class="c"&gt;# For Zsh&lt;/span&gt;
nano ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Claude Code Router Configuration&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-openrouter-api-key-here"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_ROUTER_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"anthropic/claude-3.7-sonnet"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apply the changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# For Bash&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc

&lt;span class="c"&gt;# For Zsh&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Method 2: Configuration File
&lt;/h3&gt;

&lt;p&gt;Alternatively, create a configuration file in your home directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.claude-code-router
nano ~/.claude-code-router/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your configuration (updated with the correct Claude 3.7 model string):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-openrouter-api-key-here"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"anthropic/claude-3.7-sonnet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"baseUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://openrouter.ai/api/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"maxTokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Secure Your API Key
&lt;/h3&gt;

&lt;p&gt;If you prefer using an environment file over a JSON config, ensure you lock down the file permissions so other users on the Linux system cannot read your API key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a secure environment file&lt;/span&gt;
&lt;span class="nb"&gt;touch&lt;/span&gt; ~/.claude-code-router/.env
&lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.claude-code-router/.env
nano ~/.claude-code-router/.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the key inside the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OPENROUTER_API_KEY=sk-or-v1-your-actual-key-here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Token Cost Optimization &amp;amp; Prompt Caching
&lt;/h2&gt;

&lt;p&gt;One of the primary benefits of routing Claude Code through OpenRouter is natively leveraging &lt;strong&gt;Prompt Caching&lt;/strong&gt; to heavily optimize your API costs.&lt;/p&gt;

&lt;p&gt;When working in large codebases, Claude Code sends significant contextual data (file structures, previous messages, and active file contents) with every single request. OpenRouter automatically supports Anthropic's prompt caching functionality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initial Requests:&lt;/strong&gt; Standard input token pricing applies as the context is written to the cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subsequent Requests:&lt;/strong&gt; As long as your prompt prefix remains identical (within the 5-minute cache TTL), you receive up to a &lt;strong&gt;90% discount&lt;/strong&gt; on cached input tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No extra configuration is required in &lt;code&gt;claude-code-router&lt;/code&gt; to enable this feature—OpenRouter handles the upstream caching headers automatically when translating requests to Anthropic's backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;Configure Claude Code to point to the local proxy, then initialize the router:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:8080"&lt;/span&gt;
ccr code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure LLM Models
&lt;/h2&gt;

&lt;p&gt;If you want to quickly switch models without editing config files manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ccr ui 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: This command redirects to a local web UI to configure your preferred OpenRouter models.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Check &lt;a href="https://openrouter.ai/models" rel="noopener noreferrer"&gt;OpenRouter's model list&lt;/a&gt; for the most current routing options and model strings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;claude-code-router&lt;/code&gt; package provides a seamless way to use Claude Code through OpenRouter on Linux, giving you absolute flexibility in model selection while drastically cutting costs via prompt caching. By following this guide, you now have a secure, system-integrated proxy bridging Claude Code with OpenRouter's API infrastructure.&lt;/p&gt;

&lt;p&gt;For additional help, consult the package's documentation on npm or GitHub, and periodically check OpenRouter's documentation for API changes or new model additions.&lt;/p&gt;

</description>
      <category>claude</category>
      <category>openrouter</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building a Lua docker environment</title>
      <dc:creator>Mike Buyco</dc:creator>
      <pubDate>Sat, 30 Mar 2024 08:48:14 +0000</pubDate>
      <link>https://dev.to/mbuyco/building-a-lua-docker-environment-4h2e</link>
      <guid>https://dev.to/mbuyco/building-a-lua-docker-environment-4h2e</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;I have a keen interest in containerization, a practice that has significantly streamlined my development workflow. Reflecting on my early days in programming around 2011-2012, I recall encountering a common issue when setting up local development environments. Specifically, during the installation of WAMP, I faced an error indicating that port 3306 (MySQL) was already in use. Upon investigation, I discovered that a previous installation of MySQL for a school project was the culprit, highlighting the challenges of managing dependencies and conflicting software configurations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;Currently, I am embarking on a journey to learn Lua scripting to complement my son's endeavors in 3D modeling within the Roblox platform. This motivation stems from a desire to actively engage and support his interests, although finding the time amidst other responsibilities remains a challenge. Nevertheless, I am enthusiastic about delving into Lua scripting to enhance our collaborative projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;To facilitate my exploration of Lua, I adopt a pragmatic approach by leveraging containerization with Docker to create a dedicated development environment. This method ensures isolation from existing system dependencies and simplifies setup and management.&lt;/p&gt;

&lt;p&gt;First, let's build the project structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ~/learn-lua
cd ~/learn-lua
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, create a &lt;code&gt;Dockerfile&lt;/code&gt; and our &lt;code&gt;main.lua&lt;/code&gt; script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch Dockerfile
touch main.lua
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Dockerfile:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Use a base image with Lua installed
FROM alpine:latest

# Install Lua and LuaRocks
RUN apk --update add lua5.3 lua5.3-dev luarocks5.3

# Optionally, you can install additional Lua packages using LuaRocks
# For example, to install LuaSocket:
# RUN luarocks-5.3 install luasocket

# Set the working directory
WORKDIR /app

# Copy your Lua scripts into the container
COPY . .

# Set the command to run your Lua script when the container starts
CMD ["lua5.3", "main.lua"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;main.lua:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Hello, Lua!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now to run the &lt;code&gt;lua&lt;/code&gt; script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t game-lua .
docker run -it --rm game-lua
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Time to learn more &lt;code&gt;lua&lt;/code&gt;! I will update again soon :D&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creating a simple CLI note app using a shell alias</title>
      <dc:creator>Mike Buyco</dc:creator>
      <pubDate>Sun, 30 Oct 2022 14:11:33 +0000</pubDate>
      <link>https://dev.to/mbuyco/creating-a-simple-cli-note-app-using-a-shell-alias-3go5</link>
      <guid>https://dev.to/mbuyco/creating-a-simple-cli-note-app-using-a-shell-alias-3go5</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;I've been using the terminal for my work as a software engineer for several years now and really love the idea of doing most of my tasks in the terminal. I mainly use &lt;code&gt;vim&lt;/code&gt; as my IDE and have spent lots of time configuring it to my work style and to improve my productivity over the years. &lt;/p&gt;

&lt;p&gt;Don't get me wrong, I love tools like VSCode (especially the &lt;a href="https://vscode.dev" rel="noopener noreferrer"&gt;web version&lt;/a&gt;) and I started out using text editors like Notepad++ and Sublime Text 2. But when I learned how to use &lt;code&gt;vim&lt;/code&gt; and configure it to become a full-fledged IDE for everyday use, I fell in love with it. Back then I was really looking into how I can write code with minimal overhead as possible.&lt;/p&gt;

&lt;p&gt;Some might say, I'm an old school kind of guy and I'd happily take it as a compliment! &lt;/p&gt;

&lt;p&gt;Enough with the backstory, let's see how we can take note-taking capabilities into the terminal...&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vim 8+ or Neovim 0.5+&lt;/li&gt;
&lt;li&gt;Unix shell&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating an alias
&lt;/h2&gt;

&lt;p&gt;If you're using bash, add this line to your &lt;code&gt;.bashrc&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Quickly create a note file for today
NOTES_FILENAME="notes-$(date +%Y%m%d).txt"
alias notes="mkdir ~/notes &amp;amp;&amp;gt; /dev/null; touch ~/notes/$NOTES_FILENAME; cd ~/notes; vim ~/notes/$NOTES_FILENAME"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's explain the script above...&lt;/p&gt;

&lt;p&gt;First off, we create a &lt;code&gt;NOTES_FILENAME&lt;/code&gt; variable with the current date formatted into the filename. So for example, today is October 10, 2022, then the file &lt;code&gt;notes-20221010.txt&lt;/code&gt; would be created.&lt;/p&gt;

&lt;p&gt;Second, we pass that variable to the &lt;code&gt;alias notes=&lt;/code&gt; declaration. To learn more about aliases, check out &lt;a href="https://www.geeksforgeeks.org/alias-command-in-linux-with-examples/" rel="noopener noreferrer"&gt;this article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;alias notes=&lt;/code&gt; declaration is like a shortcut for a shell command. So instead of running the actual commands, you save it into a command named &lt;code&gt;notes&lt;/code&gt;. In this case, this command does 4 things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It creates a folder named notes, into the current user's home directory (&lt;code&gt;~/notes&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;It creates a file with the name based on the &lt;code&gt;NOTES_FILENAME&lt;/code&gt; variable we created earlier.&lt;/li&gt;
&lt;li&gt;It cds into the &lt;code&gt;~/notes&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;Runs the &lt;code&gt;vim&lt;/code&gt; text editor for the file we created.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Notes environment
&lt;/h3&gt;

&lt;p&gt;Now we can access our notes by just running the &lt;code&gt;notes&lt;/code&gt; command in the terminal.&lt;/p&gt;

&lt;p&gt;If you have configured &lt;code&gt;vim&lt;/code&gt; to have a fuzzy search for project files or live grepping action, you should be able to search through your notes. And given the date format we mentioned earlier, you can search by file for a specific date. Simple enough yeah? LGTM!&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The steps we did above is a very simple example of how we can  quickly create notes in the terminal and focus on writing what's on our mind fast without leaving the terminal. If you're like me and you mostly work on the terminal and use &lt;code&gt;vim&lt;/code&gt; as your text editor, this is a very handy tool, simple and practical.&lt;/p&gt;

&lt;p&gt;Let me know your thoughts about this. Cheers!&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%2F1ok3j7gp3ezfvcgwzz7c.gif" 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%2F1ok3j7gp3ezfvcgwzz7c.gif" alt=" " width="200" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>terminal</category>
      <category>tutorial</category>
      <category>bash</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
