<?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: Hamid Samak</title>
    <description>The latest articles on DEV Community by Hamid Samak (@hamidsamak).</description>
    <link>https://dev.to/hamidsamak</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%2F4038324%2F5e2e624f-d2ac-45bb-9a4c-2d427aff962b.jpeg</url>
      <title>DEV Community: Hamid Samak</title>
      <link>https://dev.to/hamidsamak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hamidsamak"/>
    <language>en</language>
    <item>
      <title>Codient — A Multi-Model AI Coding Assistant for Your Terminal (and VSCode)</title>
      <dc:creator>Hamid Samak</dc:creator>
      <pubDate>Tue, 28 Jul 2026 10:33:32 +0000</pubDate>
      <link>https://dev.to/hamidsamak/codient-a-multi-model-ai-coding-assistant-for-your-terminal-and-vscode-22jc</link>
      <guid>https://dev.to/hamidsamak/codient-a-multi-model-ai-coding-assistant-for-your-terminal-and-vscode-22jc</guid>
      <description>&lt;p&gt;Most AI coding assistants lock you into one model and one workflow. &lt;strong&gt;Codient&lt;/strong&gt; takes a different approach: it's a command-line tool that drives Claude, ChatGPT, Gemini, and DeepSeek through their actual web sessions — so you use the accounts you already have, switch models per-task, and keep full control over what gets changed in your codebase.&lt;/p&gt;

&lt;p&gt;It ships two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/hamidsamak/codient" rel="noopener noreferrer"&gt;codient&lt;/a&gt;&lt;/strong&gt; — the core Python CLI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/hamidsamak/codient-vscode" rel="noopener noreferrer"&gt;codient-vscode&lt;/a&gt;&lt;/strong&gt; — a VSCode extension that wraps the CLI in editor commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Project site: &lt;a href="https://codient.ir" rel="noopener noreferrer"&gt;codient.ir&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Codient?
&lt;/h2&gt;

&lt;p&gt;Instead of routing your code through a paid API, Codient automates a real browser session (via Selenium) against the AI's web UI. That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You keep using your existing Claude / ChatGPT / Gemini / DeepSeek login — no API key required&lt;/li&gt;
&lt;li&gt;You can maintain &lt;strong&gt;separate Chrome profiles&lt;/strong&gt; for different accounts (e.g. a work Claude account vs. a personal one)&lt;/li&gt;
&lt;li&gt;Every change is backed up automatically, with full rollback history&lt;/li&gt;
&lt;li&gt;Multi-file context and multi-round follow-up requests are handled for you&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Core features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🤖 Multi-model support: Claude, ChatGPT, Gemini, DeepSeek&lt;/li&gt;
&lt;li&gt;📂 Multi-file project analysis&lt;/li&gt;
&lt;li&gt;💾 Safe overwrite mode with automatic backups&lt;/li&gt;
&lt;li&gt;🔄 File history &amp;amp; one-command rollback&lt;/li&gt;
&lt;li&gt;📊 Visual HTML diff reports before you commit to a change&lt;/li&gt;
&lt;li&gt;🐛 Debug mode with full prompt/response logging&lt;/li&gt;
&lt;li&gt;🌐 HTTP/SOCKS5 proxy support&lt;/li&gt;
&lt;li&gt;👤 Multiple isolated Chrome profiles&lt;/li&gt;
&lt;li&gt;🔁 Automatic multi-round conversation when the AI needs more files (up to 5 rounds)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CLI Command
   ↓
Python Engine
   ↓
Selenium Automation
   ↓
AI Web UI (Claude / ChatGPT / Gemini / DeepSeek)
   ↓
AI Response Parsing
   ↓ (if AI requests more files → follow-up loop, max 5 rounds)
File System Update / Diff / Backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installing the CLI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt; Python 3.8+, Google Chrome, and a matching ChromeDriver.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/hamidsamak/codient.git
&lt;span class="nb"&gt;cd &lt;/span&gt;codient

python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
venv/bin/pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add it to your &lt;code&gt;PATH&lt;/code&gt; so you can run &lt;code&gt;codient&lt;/code&gt; from anywhere:&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; ~/.local/bin
&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; ~/.local/bin/codient &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;
#!/bin/bash
exec "&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;/venv/bin/python" "&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;/codient" "&lt;/span&gt;&lt;span class="se"&gt;\$&lt;/span&gt;&lt;span class="sh"&gt;@"
&lt;/span&gt;&lt;span class="no"&gt;EOF
&lt;/span&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x ~/.local/bin/codient

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$HOME/.local/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Using WSL Ubuntu? There's a dedicated &lt;a href="https://github.com/hamidsamak/codient/blob/main/docs/WSL_SETUP.md" rel="noopener noreferrer"&gt;WSL setup guide&lt;/a&gt; for getting Chrome/ChromeDriver working.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  First-time login
&lt;/h3&gt;

&lt;p&gt;Before using a model, open a browser session and log in once — the session is saved for future runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="nt"&gt;--browser&lt;/span&gt; &lt;span class="nt"&gt;--model&lt;/span&gt; claude
codient &lt;span class="nt"&gt;--browser&lt;/span&gt; &lt;span class="nt"&gt;--model&lt;/span&gt; gemini
codient &lt;span class="nt"&gt;--browser&lt;/span&gt; &lt;span class="nt"&gt;--model&lt;/span&gt; chatgpt
codient &lt;span class="nt"&gt;--browser&lt;/span&gt; &lt;span class="nt"&gt;--model&lt;/span&gt; deepseek
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using the CLI
&lt;/h2&gt;

&lt;p&gt;Basic usage (default model is DeepSeek):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="s2"&gt;"Fix this code"&lt;/span&gt; file1.py file2.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pick a specific model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="nt"&gt;--model&lt;/span&gt; claude &lt;span class="s2"&gt;"Fix this code"&lt;/span&gt; app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apply changes directly, with an automatic backup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="nt"&gt;--overwrite&lt;/span&gt; &lt;span class="s2"&gt;"Refactor this code"&lt;/span&gt; main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pass read-only reference files with &lt;code&gt;--context&lt;/code&gt;; anything after &lt;code&gt;--&lt;/code&gt; is an editable target:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="s2"&gt;"Improve architecture"&lt;/span&gt; &lt;span class="nt"&gt;--context&lt;/span&gt; utils.py config.py &lt;span class="nt"&gt;--&lt;/span&gt; main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you skip &lt;code&gt;--overwrite&lt;/code&gt;, Codient generates a visual HTML diff report instead of touching any files, and opens it in your browser automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-round conversations
&lt;/h3&gt;

&lt;p&gt;If the AI needs to see more files to finish the task, Codient detects that request, looks for the files locally, and — if it can't find one — asks you for the path. This repeats for up to 5 rounds until the AI has everything it needs. In &lt;code&gt;--non-interactive&lt;/code&gt; mode (useful for CI or the VSCode extension), missing files are skipped automatically and the AI is told to create them from scratch instead of prompting you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Profiles
&lt;/h3&gt;

&lt;p&gt;Keep separate logins for different accounts or purposes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="nt"&gt;--browser&lt;/span&gt; &lt;span class="nt"&gt;--profile&lt;/span&gt; work
codient &lt;span class="nt"&gt;--profile&lt;/span&gt; work &lt;span class="s2"&gt;"Fix this code"&lt;/span&gt; app.py
codient &lt;span class="nt"&gt;--list-profiles&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Backup &amp;amp; rollback
&lt;/h3&gt;

&lt;p&gt;Every modified file is backed up before it's touched:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codient &lt;span class="nt"&gt;--rollback&lt;/span&gt; main.py
codient &lt;span class="nt"&gt;--rollback&lt;/span&gt; main.py &lt;span class="nt"&gt;--timestamp&lt;/span&gt; 20250101123000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using the VSCode extension
&lt;/h2&gt;

&lt;p&gt;The extension is a thin front-end over the same CLI engine. Once installed, open the Command Palette (&lt;code&gt;Ctrl+Shift+P&lt;/code&gt; / &lt;code&gt;Cmd+Shift+P&lt;/code&gt;) and use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Codient: Ask AI&lt;/strong&gt; — analyze and edit files directly, with automatic backup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codient: Preview Changes&lt;/strong&gt; — same as above, but generates an HTML diff instead of touching files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codient: Open Browser Session&lt;/strong&gt; — open a persistent login session for the active profile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codient: Switch Profile&lt;/strong&gt; — interactively switch between Chrome profiles, or create a new one on the fly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Settings you can configure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;codient.model&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;chatgpt&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, or &lt;code&gt;deepseek&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;codient.proxy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(empty)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;e.g. &lt;code&gt;http://127.0.0.1:8080&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;codient.profile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Chrome profile to use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Building the extension locally
&lt;/h3&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; @vscode/vsce
vsce package
code &lt;span class="nt"&gt;--install-extension&lt;/span&gt; codient-&lt;span class="k"&gt;*&lt;/span&gt;.vsix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Codient is still an early, actively developed project — feedback, issues, and stars are very welcome. If you work with multiple AI coding assistants and want one consistent CLI/editor workflow across all of them, give it a try:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CLI: &lt;a href="https://github.com/hamidsamak/codient" rel="noopener noreferrer"&gt;github.com/hamidsamak/codient&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;VSCode extension: &lt;a href="https://github.com/hamidsamak/codient-vscode" rel="noopener noreferrer"&gt;github.com/hamidsamak/codient-vscode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://codient.ir" rel="noopener noreferrer"&gt;codient.ir&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's also a &lt;a href="https://www.youtube.com/watch?v=7rxg5bH-JLo" rel="noopener noreferrer"&gt;video walkthrough&lt;/a&gt; covering installation and usage end-to-end.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>vscode</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
