<?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: Florian Soare</title>
    <description>The latest articles on DEV Community by Florian Soare (@floriansoare).</description>
    <link>https://dev.to/floriansoare</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%2F112870%2F087993ec-34f8-4993-8061-67f6f8154d66.jpeg</url>
      <title>DEV Community: Florian Soare</title>
      <link>https://dev.to/floriansoare</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/floriansoare"/>
    <language>en</language>
    <item>
      <title>How to Install and Configure Claude on Windows via WSL: A Step-by-Step Guide</title>
      <dc:creator>Florian Soare</dc:creator>
      <pubDate>Tue, 20 Oct 2026 06:34:51 +0000</pubDate>
      <link>https://dev.to/floriansoare/how-to-install-and-configure-claude-on-windows-via-wsl-a-step-by-step-guide-633</link>
      <guid>https://dev.to/floriansoare/how-to-install-and-configure-claude-on-windows-via-wsl-a-step-by-step-guide-633</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2w24ux6c9gdbud0phybg.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2w24ux6c9gdbud0phybg.png" alt="How to Install and Configure Claude on Windows via WSL: A Step-by-Step Guide" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Install and Configure Claude on Windows via WSL: A Step-by-Step Guide
&lt;/h2&gt;

&lt;p&gt;Running AI-based tools inside a secure, isolated environment is a best practice for developers and tech enthusiasts alike. By leveraging the &lt;strong&gt;Windows Subsystem for Linux (WSL)&lt;/strong&gt;, you can run a dedicated Linux distribution (such as Debian or Ubuntu) directly on Windows. This gives the &lt;strong&gt;Claude&lt;/strong&gt; assistant (formerly the Claude Cowork environment) dedicated access to tools and scripts without risking modifications to your primary host system.&lt;/p&gt;

&lt;p&gt;In this guide, we will walk step-by-step through installing a dedicated Linux distribution and configuring Claude using two methods: via command line (&lt;strong&gt;PowerShell&lt;/strong&gt;) and via graphical interface (&lt;strong&gt;GUI&lt;/strong&gt;).&lt;/p&gt;




&lt;h2&gt;
  
  
  What is WSL and Why Use It for Claude?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;WSL (Windows Subsystem for Linux)&lt;/strong&gt; is a feature developed by Microsoft that allows you to run a Linux operating system natively inside Windows 10 or 11, without rebooting or relying on resource-heavy traditional virtual machines.&lt;/p&gt;

&lt;p&gt;Running Claude inside WSL offers several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Isolation and Security:&lt;/strong&gt; The application runs in a restricted sandbox environment without direct administrative privileges over your main Windows installation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Compatibility:&lt;/strong&gt; Modern development utilities, build tools, and Node.js packages run natively in the Linux ecosystem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High Performance:&lt;/strong&gt; Fast file I/O and command execution in the terminal.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Method 1: Installation &amp;amp; Configuration via PowerShell (CLI)
&lt;/h2&gt;

&lt;p&gt;This method is fast and ideal if you prefer executing setup steps directly in the terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Prepare the WSL Environment
&lt;/h3&gt;

&lt;p&gt;Open a &lt;strong&gt;PowerShell&lt;/strong&gt; window (Right-click Start -&amp;gt; &lt;em&gt;PowerShell&lt;/em&gt; or &lt;em&gt;Windows Terminal&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Check your existing Linux distributions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--verbose&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to create a dedicated, isolated instance (e.g., a clean Debian copy named Claude), you can export a base image and import it under a custom name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Export the existing base Linux instance to a temporary archive&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;TEMP&lt;/span&gt;&lt;span class="s2"&gt;\debian-base.tar"&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Create a dedicated directory and import the instance under 'Claude'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ItemType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Directory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"C:\WSL\Claude"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\WSL\Claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;TEMP&lt;/span&gt;&lt;span class="s2"&gt;\debian-base.tar"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Remove the temporary archive&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Remove-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;TEMP&lt;/span&gt;&lt;span class="s2"&gt;\debian-base.tar"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Connect to the New Distribution
&lt;/h3&gt;

&lt;p&gt;Connect to your newly created distribution as the root user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PowerShell
wsl -d Claude -u root
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Create a Restricted User (Non-Sudo)
&lt;/h3&gt;

&lt;p&gt;For enhanced security, create a non-administrative user (without sudo access) that will be used exclusively for Claude:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
adduser claude
(Set a password when prompted).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure WSL to log in automatically with this user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
cat &amp;lt;&amp;lt;EOF&amp;gt; /etc/wsl.conf
[user]
default=claude
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Install Node.js 22 and Claude Code
&lt;/h3&gt;

&lt;p&gt;Switch to the claude user and install NVM (Node Version Manager) to handle Node.js environments:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
su - claude
curl -fsSLk [https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh](https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh) | bash

# Load NVM into the current session
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] &amp;amp;&amp;amp; \. "$NVM_DIR/nvm.sh"

# Install Node.js version 22
export NVM_NODEJS_ORG_MIRROR="[http://nodejs.org/dist](http://nodejs.org/dist)"
nvm install 22
nvm use 22
nvm alias default 22
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the official Claude Code CLI package globally within the user's profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
npm config set strict-ssl false
npm install -g @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Launch the assistant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
NODE_TLS_REJECT_UNAUTHORIZED=0 claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method 2: Setup and Navigation via Graphical Interface (GUI)
&lt;/h2&gt;

&lt;p&gt;If you prefer working with windows, folders, and visual tools, Windows provides excellent integration with WSL through Windows Explorer and VS Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Accessing Linux Files via Windows Explorer
&lt;/h3&gt;

&lt;p&gt;You don't need complex terminal commands to manage project files or outputs generated by Claude.&lt;/p&gt;

&lt;p&gt;Open File Explorer in Windows (Win + E).&lt;/p&gt;

&lt;p&gt;On the left sidebar, scroll down to the Linux section (represented by a penguin icon).&lt;/p&gt;

&lt;p&gt;Click the penguin icon to view all installed distributions (e.g., Debian, Claude, Ubuntu).&lt;/p&gt;

&lt;p&gt;Navigate to your user folder: \Claude\home\claude.&lt;/p&gt;

&lt;p&gt;Pro Tip: You can pin /home/claude/ to your Quick Access menu in File Explorer by right-clicking the folder and selecting Pin to Quick access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Launching Linux Profiles from Windows Terminal
&lt;/h3&gt;

&lt;p&gt;The modern Windows Terminal app offers a tabbed interface similar to a web browser:&lt;/p&gt;

&lt;p&gt;Open Windows Terminal from the Start Menu.&lt;/p&gt;

&lt;p&gt;Click the dropdown arrow next to the new tab button (+).&lt;/p&gt;

&lt;p&gt;Select Claude or Debian from the list.&lt;/p&gt;

&lt;p&gt;The terminal window will open directly inside your Linux environment, ready for the claude command.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Editing Files with Visual Studio Code
&lt;/h3&gt;

&lt;p&gt;To view or edit project files created by Claude inside a full visual editor:&lt;/p&gt;

&lt;p&gt;Download and install Visual Studio Code on Windows.&lt;/p&gt;

&lt;p&gt;Install the official WSL extension (Ctrl + Shift + X -&amp;gt; search for "WSL").&lt;/p&gt;

&lt;p&gt;Inside your WSL terminal, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
code .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;VS Code will open on your Windows desktop, connected directly to your Linux filesystem.&lt;/p&gt;

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

&lt;p&gt;Setting up the Claude assistant within an isolated WSL environment combines the security and stability of Linux with the flexibility of the Windows UI. Whether you prefer the speed of the PowerShell command line or the visual comfort of Windows Explorer and VS Code, this architecture provides a clean, efficient workspace.&lt;/p&gt;

</description>
      <category>wsl</category>
      <category>debian</category>
      <category>windows11</category>
      <category>node</category>
    </item>
    <item>
      <title>Some ideas to set up a Linux machine</title>
      <dc:creator>Florian Soare</dc:creator>
      <pubDate>Fri, 16 Nov 2018 12:44:37 +0000</pubDate>
      <link>https://dev.to/floriansoare/some-ideas-to-set-up-a-linux-machine-4h75</link>
      <guid>https://dev.to/floriansoare/some-ideas-to-set-up-a-linux-machine-4h75</guid>
      <description>&lt;p&gt;These days a connection to a network is something to be done at any type of electronic terminal. As a helper, Linux can be the best solution in terms of ease of administration and security of a network configured with this operating system. Below are some ideas to set up a Linux terminal and I hope that they would help you configure, optimize, and troubleshoot problems that might occur on a network that has such a server.&lt;/p&gt;

&lt;p&gt;1: Use the / etc / hosts file to mention the hosts there&lt;/p&gt;

&lt;p&gt;The file is used for host static names and provides a quick way to create network shortcuts. One of the first things I do on a Linux machine is adding different machines to / etc / hosts. This saves me from having to enter a lot of IP addresses. The format of an address for this file is:&lt;/p&gt;

&lt;p&gt;IP_ADDRESS NAME_OF_COMPUTER&lt;/p&gt;

&lt;p&gt;For example, if I use a machine for a backup location at IP address 192.168.1.101, I could enter:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.101 backup_computer
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now if I have to connect to that machine, say using SSH with "safe" shell, I can bring the machine into the console using the command:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -v -l username backup_computer 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;to make the connection and not&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -v -l username 192.168.1.101 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;like the way the machine is called using its IP address directly.&lt;/p&gt;

&lt;p&gt;2: Avoid unwanted names using /etc/hosts.deny&lt;/p&gt;

&lt;p&gt;There is a host configuration file used to restrict - hosts.deny.&lt;br&gt;
This file allows you to have access control based on the client or server name. This is useful in many ways. You can block blacklist domains from accessing your site or prevent certain users from gaining access to certain machines. But no matter how you use it, the format is the same.&lt;br&gt;
Suppose you want to block the domain:&lt;/p&gt;

&lt;p&gt;nume.baddomain.com&lt;/p&gt;

&lt;p&gt;from accessing your device. To do this, open the /etc/hosts.deny file (you will need root or sudo privileges) and add this line to the bottom of the file:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALL: name.baddomain.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Save it and you'll be protected against connections using this domain name.&lt;/p&gt;

&lt;p&gt;3: Download and install interface for iptables&lt;/p&gt;

&lt;p&gt;You can not assume that just because you are using Linux, you are secure. You're more confident with it than other operating systems, but there's not such thing as too much security and you can add safety features to it. And the best security you can have with Linux is by using iptables (IP tables used by a FireWall). The only problem with iptables is that it can be a challenge (especially for the new user). Fortunately, there are graphical interfaces for iptables. One of the best interfaces that can be used successfully by you is the Firestarter. This interface makes iptables simple, so you do not get around the security of this operating system.&lt;/p&gt;

&lt;p&gt;4: Skip over NFS (Network File System) and use Samba&lt;/p&gt;

&lt;p&gt;You may be tempted to configure NFS for local file sharing. Do not do it.&lt;br&gt;
NFS asks you to have too many open ports on your desktop or server. Instead, use Samba that is considerably stronger. With Samba, you are required to have only a minimum of open ports, so security is not such a big problem as NFS's.&lt;br&gt;
In fact, Samba runs on TCP ports 139 and 445 and UDP ports 137 and 138. For NFS you will need UDP ports 111, 1039, 1047, 1048 and 2049 and TCP ports 111, 1039, 1047, 1048, and 2049. No reason to open security holes when Samba does a better work of sharing files that works great with other platforms and can even connect to Active Directory.&lt;/p&gt;

&lt;p&gt;5: Remember smbpasswd when installing Samba&lt;/p&gt;

&lt;p&gt;I have seen allot of Samba problems among users, the problem is that they did not add the user and a password with smbpasswd. Without doing so, the user will not be able to authenticate to the Samba Server. And when you use smbpasswd to add a new user, you need to add the "-a" switch, as appropriate:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;smbpasswd -a USERNAME
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Once you have pressed Enter, you will be prompted for the user's password (twice). NOTE: You must have root (or sudo) access to do so.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
