پوسته عصبی (NLSH): دستیار خط فرمان AI شما

پوسته عصبی (NLSH): دستیار خط فرمان AI شما
آیا تا به حال خود را پیدا کرده اید که دقایق گرانبها را صرف Googling در دستورات پوسته مناسب می کنید یا از Chatgpt درخواست کمک می کنید؟ خط فرمان قدرتمند است ، اما نحو رمزنگاری آن می تواند مانع قابل توجهی برای بهره وری باشد.
وارد کردن پوسته عصبی (NLSH) -یک دستیار خط فرمان AI محور که زبان طبیعی را به دستورات پوسته متناسب با متن سیستم شما تبدیل می کند. این شکاف بین کاری که می خواهید انجام دهید و نحو دستور دقیق لازم برای انجام آن را پل می کند.
مشکل: اصطکاک خط فرمان
رابط خط فرمان (CLI) قدرت و انعطاف پذیری بی نظیری را برای توسعه دهندگان و مدیران سیستم ارائه می دهد. با این حال ، این قدرت با یک منحنی یادگیری شیب دار و سربار شناختی همراه است:
- پیچیدگی نحو: هر پوسته دارای Quirks Syntax خود و تغییرات فرمان است
-
بار اضافه پارامتر: دستورات مانند
find
باawk
، یاsed
ده ها گزینه و پرچم داشته باشید - سوئیچینگ متن: نگاه کردن به دستورات جریان کار شما را قطع می کند و غلظت را می شکند
- تفاوت سیستم: دستوراتی که روی یک سیستم عامل یا پوسته کار می کنند ممکن است در دیگری شکست بخورد (به عنوان مثال ، MacOS در مقابل لینوکس)
این نقاط اصطکاک ما را کند می کند و فرصت هایی را برای خطاها معرفی می کند – برخی از آنها هنگام کار با دستورات سیستم می توانند پرهزینه یا خطرناک باشند.
چگونه پوسته عصبی این مشکلات را حل می کند
پوسته عصبی به عنوان پلی بین زبان طبیعی و دستورات پوسته عمل می کند. به جای یادآوری نحو دقیق ، آنچه را که می خواهید انجام دهید توصیف می کنید درست در ترمینال شما، و NLSH دستور مناسب را تولید می کند:
# Instead of trying to remember the exact find syntax
nlsh find all log files larger than 10MB modified in the last week
# Suggested: find . -name "*.log" -size +10M -mtime -7
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# (command output appears here)
این ابزار هرگز دستورات را به طور خودکار اجرا نمی کند – همیشه دستور پیشنهادی را به شما نشان می دهد و منتظر تأیید شما است و به شما امکان می دهد هنگام استفاده از آن یاد بگیرید.
ویژگی های کلیدی که NLSH را خاص می کند
🔄 پشتیبانی LLM چند پشتیبان
پوسته عصبی به یک ارائه دهنده هوش مصنوعی گره خورده نیست. از چندین نقطه پایانی سازگار با OpenAI پشتیبانی می کند:
- مدل های محلی از طریق Ollama ، LM Studio و غیره ، برای حفظ حریم خصوصی و استفاده آفلاین
- ارائه دهندگان ابر مانند Groq ، Deepseek و دیگران
- تعویض آسان بین بالهای با پرچم های ساده (-0 ، -1 و غیره)
این انعطاف پذیری به این معنی است که می توانید از مدلی استفاده کنید که متناسب با نیاز ، بودجه و الزامات حریم خصوصی شما باشد.
🧠 زمینه آگاهی از سیستم
چه چیزی تنظیم می شود nlsh
جدا از اینکه فقط درخواست یک LLM با هدف کلی (مانند ChatGPT) برای دستورات پوسته آگاهی از سیستم آن است. این به طور خودکار اطلاعات مربوط به محیط شما را برای تولید دستورات مرتبط تر جمع می کند. به عنوان مثال:
nlsh show current python interpreter path
# Suggested: which python
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# /usr/bin/python
# (The actual suggested command and output might vary based on your system and shell)
پوسته عصبی به طور خودکار اطلاعات مربوط به شما را جمع می کند:
- محتوای فهرست فعلی
- متغیرهای محیطی (با داده های حساس کاهش یافته)
- سیستم عامل و نوع پوسته
- معماری سیستم
این زمینه باعث می شود دستوراتی متناسب با محیط خاص شما تولید شود.
🐚 نسل آگاهی از پوسته
پوسته های مختلف نیازهای نحوی متفاوتی دارند. پوسته عصبی به این احترام می گذارد. اگر nlsh
برای fish
پوسته (با استفاده از NLSH_SHELL
متغیر محیط یا shell
قرار دادن config.yml
):
nlsh create a function that converts markdown to pdf
# Suggested: function md2pdf
# pandoc $argv -o (basename $argv .md).pdf
# end
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# Function 'md2pdf' defined
NLSH با پیکربندی پوسته مورد نظر خود (BASH/ZSH/FISH/POWERSHELL) ، دستوراتی را که تولید می کند در محیط شما کار می کند.
🛡 رویکرد ایمنی اول
پوسته عصبی ایمنی را در اولویت قرار می دهد:
nlsh find all temporary files
# Suggested: find . -name "*.tmp" -type f
# [Confirm] Run this command? (y/N/e/r/x) x
# Explanation:
# ----------------------------------------
# This command finds all files with the .tmp extension in the current directory and subdirectories.
# - `find .` searches from the current directory
# - `-name "*.tmp"` matches files ending with .tmp
# - `-type f` ensures we only find regular files, not directories
# ----------------------------------------
ابزار:
- هرگز دستورات را به صورت خودکار اجرا نکنید.
- گزینه توضیح (“x”) را برای درک اینکه یک دستور چه کاری انجام می دهد فراهم می کند.
- اجازه می دهد تا دستورات ویرایش را قبل از اجرای (“E”).
- به شما اجازه می دهد اگر آنها با هدف شما مطابقت نداشته باشند ، پیشنهادات را بازسازی کنید. هر تلاش برای بازسازی همچنین خلاقیت (دما) مدل را برای تشویق پیشنهادات مختلف افزایش می دهد.
شایان ذکر است که زیر کاپوت ، nlsh
کاربردهای subprocess.Popen
با shell=True
برای اجرای دستورات ، که برای تفسیر نحو پوسته پیچیده ضروری است. در حالی که در صورت اجرای یک فرمان مخرب ، این خطرات ذاتی را به همراه دارد ، مرحله تأیید اجباری به عنوان حفاظت اصلی عمل می کند. همیشه دستورات پیشنهادی را قبل از تأیید اجرای با دقت بررسی کنید.
موارد استفاده عملی
مدیریت پرونده روزانه
nlsh find duplicate files in my downloads folder and show their sizes
# Suggested: find ~/Downloads -type f -exec md5sum {} \; | sort | uniq -w32 -d --all-repeated=separate | awk '{print $2}' | xargs du -sh
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# 4.2M ~/Downloads/report-v2.pdf
# 1.8M ~/Downloads/presentation-draft.pptx
# (output truncated for brevity)
پردازش داده های پیچیده
nlsh extract all email addresses from log files and count unique domains
# Suggested: grep -Eo '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' *.log | awk -F@ '{print $2}' | sort | uniq -c | sort -nr
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# 42 gmail.com
# 27 company.com
# 15 outlook.com
# 8 protonmail.com
# (output truncated for brevity)
مدیریت سیستم
nlsh find processes using more than 1GB of memory
# Suggested: ps aux | awk '$6 > 1000000 {print $0}'
# [Confirm] Run this command? (y/N/e/r/x) y
# Executing:
# user 12345 15.0 8.2 2145328 1345796 ? Sl 10:23 2:14 /usr/lib/firefox/firefox
# user 9876 4.2 6.7 1782540 1098432 ? Sl 09:45 1:32 /usr/bin/chromium-browser
# (output truncated for brevity)
عملیات GIT با NLGC
پوسته عصبی همچنین شامل یک ابزار همراه به نام است nlgc
(تعهد عصبی) که بر اساس تغییرات مرحله ای شما پیام های متعهد معنی داری ایجاد می کند:
# After staging changes
git add .
# Generate a commit message
nlgc
# Suggested commit message:
# --------------------
# feat: Add nlgc command for AI-generated commit messages
#
# Implements the nlgc command which analyzes staged git diffs
# and uses an LLM to generate conventional commit messages.
# Includes configuration options and CLI flags to control
# whether full file content is included in the prompt.
# --------------------
# [Confirm] Use this message? (y/N/e/r) y
# Executing: git commit -m "feat: Add nlgc command..."
# Commit successful.
این امر به حفظ تاریخچه تمیز و آموزنده بدون سرنشین ذهنی برای تهیه دستی پیام تعهد کامل کمک می کند. nlgc
همچنین از پرچم هایی مانند پشتیبانی می کند --full-files
/ --no-full-files
برای کنترل اندازه زمینه و -a
/ --all
برای در نظر گرفتن همه پرونده های اصلاح شده ، نه فقط موارد صحنه. توجه داشته باشید که nlgc
در حال حاضر پرونده های فردی بزرگتر از 100 کیلوبایت پوند را قبل از افزودن آنها به سریع برای جلوگیری از سرریز زمینه ، کوتاه می کند.
شروع
نصب ساده است:
# Via pip
pip install neural-shell
# Or from source
git clone https://github.com/eqld/nlsh.git
cd nlsh
pip install .
با کپی کردن مثال یک فایل پیکربندی ایجاد کنید:
mkdir -p ~/.nlsh
cp examples/config.yml ~/.nlsh/config.yml
سپس ، ویرایش کنید ~/.nlsh/config.yml
برای افزودن پیکربندی خود پرونده پیکربندی یک ساختار ساده دارد:
shell: "zsh" # Your preferred shell (bash/zsh/fish/powershell)
backends:
- name: "local-ollama"
url: "http://localhost:11434/v1"
api_key: "ollama"
model: "llama3"
- name: "groq-cloud"
url: "https://api.groq.com/v1"
api_key: $GROQ_KEY
model: "llama3-70b-8192"
default_backend: 0 # Index of the default backend to use
شما باید کلیدهای API خود را به پیکربندی اضافه کنید. چند روش اصلی برای تهیه آنها وجود دارد:
- در پرونده پیکربندی: کلید را مستقیماً یا متغیر محیط را با استفاده از آن قرار دهید
$VAR
نحو (به عنوان مثال ،api_key: $MY_SECRET_KEY
). - به عنوان متغیرهای محیط: متغیرهای خاص مانند
OPENAI_API_KEY
یاNLSH_BACKEND_0_API_KEY
بشر اینها کلیدهای مشخص شده در پرونده پیکربندی را نادیده می گیرند.
به عنوان مثال ، با استفاده از روش دوم:
export OPENAI_API_KEY=sk-...
و شما آماده رفتن هستید!
ویژگی های پیشرفته
ویژگی های تعامل فرمان
توضیح فرمان
گزینه 'X' توضیحات مفصلی در مورد دستورات پیشنهادی ارائه می دهد:
nlsh find all python files with TODO comments
# Suggested: grep -r "TODO" --include="*.py" .
# [Confirm] Run this command? (y/N/e/r/x) x
# Explanation:
# ----------------------------------------
# This command searches recursively for "TODO" in all Python files:
# - `grep -r` performs recursive searching
# - `"TODO"` is the text pattern to search for
# - `--include="*.py"` limits the search to Python files
# - `.` specifies to start the search from the current directory (`.` refers to the current directory)
# ----------------------------------------
این ویژگی برای یادگیری دستورات جدید و درک تک لاین های پیچیده بسیار ارزشمند است.
ویرایش فرمان
گزینه 'E' به شما امکان می دهد قبل از اجرای یک دستور پیشنهادی را ویرایش کنید ، که در صورت نیاز به تنظیمات کوچک مفید است:
nlsh list files sorted by size
# Suggested: ls -lS
# [Confirm] Run this command? (y/N/e/r/x) e
# (Opens your $EDITOR with 'ls -lS')
# (Edit the command, e.g., to 'ls -lSh')
# Edited command: ls -lSh
# [Confirm] Run this command? (y/N/e/r/x) y
مدل و ویژگی های سریع
شیوه کلامی
برای مدلهای استدلال ، مانند deepseek-reasoner
، استفاده از -v
پرچم برای دیدن استدلال هوش مصنوعی:
nlsh -v find large files consuming disk space
# Reasoning: To find large files consuming disk space, I'll use the 'find' command
# with size filtering, then sort the results by size using 'du'.
# Suggested: find . -type f -size +100M -exec du -h {} \; | sort -hr
این بینشی در مورد چگونگی نزدیک شدن به AI به مشکل ارائه می دهد. شما می توانید این ویژگی را با استفاده از مدل های مشخص شده با آن فعال کنید is_reasoning_model: true
در پرونده پیکربندی خود و استفاده از -v
پرچم برای جزئیات بیشتر ، استفاده کنید -vv
در صورت بروز خطاها ، اطلاعات اشکال زدایی و آثار پشته را شامل می شود.
اعلان های سفارشی
برای انجام کارهای پیچیده تر یا تکراری ، می توانید با استفاده nlsh --prompt-file your_prompt.txt
بشر
سیستم و ویژگی های ورود به سیستم
ابزارهای زمینه سیستم
پشت صحنه ، nlsh
از ابزارهایی مانند استفاده می کند DirLister
(برای محتوای دایرکتوری) ، EnvInspector
(برای متغیرهای محیط) ، و SystemInfo
(برای جزئیات سیستم عامل/پوسته) برای ارائه زمینه مربوط به هوش مصنوعی ، بهبود دقت فرمان.
درخواست ورود به سیستم
برای تیم ها یا اهداف حسابرسی ، می توانید تمام درخواست ها را وارد کنید:
nlsh --log-file ~/.nlsh/logs/requests.log find security vulnerabilities
توجه داشته باشید در مورد دستورات تعاملی
nlsh
با دستوراتی که تولید خط به خط تولید می کنند ، بهترین کار را می کند. دستورات بسیار تعاملی (مانند آنهایی که دارای میله های پیشرفت در زمان واقعی هستند) ممکن است در حین اجرای از طریق اجرا کاملاً ارائه نشود nlsh
بشر
چرا پوسته عصبی اهمیت دارد
پوسته عصبی نشان دهنده تغییر در نحوه تعامل ما با رابط های خط فرمان است. به جای اینکه انسان ها را مجبور به فکر کردن مانند رایانه ها کند ، به رایانه ها اجازه می دهد تا قصد انسان را درک کنند.
مزایا شامل:
- سوئیچینگ زمینه را کاهش داد: بدون دستورات googling در جریان بمانید
- حل مسئله سریعتر: اهداف را بلافاصله به اقدامات تبدیل کنید
- فرصت یادگیری: مشاهده ، ویرایش ، توضیح و درک دستورات مناسب برای هر کار
- ثبات: دستوراتی را تولید کنید که از بهترین شیوه ها پیروی کنند
- امنیت: برای جلوگیری از اشتباهات دستورات قبل از اجرای
پایان
عصبی پوسته (NLSH) تجربه خط فرمان را از یادآوری به مکالمه تبدیل می کند. این تمام قدرت و انعطاف پذیری CLI را در حالی که بخش اعظم اصطکاک را از بین می برد ، حفظ می کند.
این که آیا شما یک sysadmin فصلی هستید که به دنبال صرفه جویی در وقت هستید ، یک توسعه دهنده که مایل به ماندن در جریان است ، یا کسی که خط فرمان را یاد می گیرد ، NLSH روشی طبیعی تر برای تعامل با رایانه خود ارائه می دهد.
امروز آن را امتحان کنید و آینده رابط های خط فرمان را تجربه کنید!
پوسته عصبی تحت مجوز MIT منبع باز است. مشارکتها در github.com/eqld/nlsh استقبال می شود.