Obsidian CLI হলো একটি কমান্ড লাইন ইন্টারফেস যা আপনাকে স্ক্রিপ্টিং, অটোমেশন এবং বাহ্যিক টুলের সাথে একত্রীকরণের জন্য আপনার টার্মিনাল থেকে Obsidian নিয়ন্ত্রণ করতে দেয়। Obsidian-এ আপনি যা কিছু করতে পারেন তা কমান্ড লাইন থেকেও করতে পারেন। Obsidian CLI-তে ডেভেলপার টুল অ্যাক্সেস করা, এলিমেন্ট পরিদর্শন করা, স্ক্রিনশট নেওয়া, প্লাগইন রিলোড করা, এবং আরও অনেক কিছুর জন্য [[#Developer commands|ডেভেলপার কমান্ড]] পর্যন্ত অন্তর্ভুক্ত রয়েছে। ![[obsidian-cli.mp4#interface]] > [!warning] Obsidian 1.12 ইনস্টলার প্রয়োজন > CLI ব্যবহার করতে Obsidian 1.12 ইনস্টলার প্রয়োজন। দেখুন [[Obsidian আপডেট করুন#Installer updates|ইনস্টলার সংস্করণ আপডেট গাইড]]। ## Obsidian CLI ইনস্টল করুন সর্বশেষ [[Obsidian আপডেট করুন|Obsidian ইনস্টলার সংস্করণে]] (1.12.7+) আপগ্রেড করুন। Obsidian-এ Obsidian CLI সক্রিয় করুন: 1. **সেটিংস** → **সাধারণ** এ যান। 2. **কমান্ড লাইন ইন্টারফেস** সক্রিয় করুন। 3. Obsidian CLI নিবন্ধন করতে প্রম্পট অনুসরণ করুন। Obsidian CLI ইনস্টল করার সময় সমস্যা হলে [[#Troubleshooting|সমস্যা সমাধান]] দেখুন। ## শুরু করুন Obsidian CLI একক কমান্ড এবং ইন্টারেক্টিভ সহায়তা ও অটোকমপ্লিট সহ একটি টার্মিনাল ইউজার ইন্টারফেস (TUI) উভয়ই সমর্থন করে। > [!info] Obsidian অ্যাপ অবশ্যই চালু থাকতে হবে > Obsidian CLI-এর জন্য Obsidian অ্যাপ চালু থাকা প্রয়োজন। যদি Obsidian চালু না থাকে, তাহলে আপনার চালানো প্রথম কমান্ডটি Obsidian চালু করে। > > ডেস্কটপ অ্যাপ ছাড়াই সিঙ্ক করতে চান? দেখুন [[Obsidian Headless|Obsidian Headless]]। ### একটি কমান্ড চালান TUI না খুলে একটি পৃথক কমান্ড চালান: ```shell # help কমান্ড চালান obsidian help ``` ### টার্মিনাল ইন্টারফেস ব্যবহার করুন `obsidian` লিখে TUI ব্যবহার করুন। পরবর্তী কমান্ডগুলো `obsidian` ছাড়াই লেখা যায়। ```shell # TUI খুলুন, তারপর help চালান obsidian help ``` TUI অটোকমপ্লিট, কমান্ড হিস্টোরি এবং রিভার্স সার্চ সমর্থন করে। আপনার কমান্ড হিস্টোরি অনুসন্ধান করতে `Ctrl+R` ব্যবহার করুন। সব উপলব্ধ শর্টকাটের জন্য [[#Keyboard shortcuts|কীবোর্ড শর্টকাট]] দেখুন। ## উদাহরণ Obsidian CLI যা করতে পারে তার কয়েকটি উদাহরণ এখানে দেওয়া হলো। ### দৈনন্দিন ব্যবহার ```shell # আজকের দৈনিক নোট খুলুন obsidian daily # আপনার দৈনিক নোটে একটি টাস্ক যোগ করুন obsidian daily:append content="- [ ] Buy groceries" # আপনার ভল্ট অনুসন্ধান করুন obsidian search query="meeting notes" # সক্রিয় ফাইল পড়ুন obsidian read # আপনার দৈনিক নোট থেকে সব টাস্ক তালিকাভুক্ত করুন obsidian tasks daily # একটি টেমপ্লেট থেকে একটি নতুন নোট তৈরি করুন obsidian create name="Trip to Paris" template=Travel # গণনা সহ আপনার ভল্টের সব ট্যাগ তালিকাভুক্ত করুন obsidian tags counts # একটি ফাইলের দুটি সংস্করণ তুলনা করুন obsidian diff file=README from=1 to=3 ``` ### ডেভেলপারদের জন্য প্লাগইন এবং থিম ডেভেলপমেন্টের জন্য অনেক [[#Developer commands|ডেভেলপার কমান্ড]] উপলব্ধ। এই কমান্ডগুলো এজেন্টিক কোডিং টুলগুলোকে স্বয়ংক্রিয়ভাবে পরীক্ষা ও ডিবাগ করতে দেয়। ```shell # ডেভেলপার টুল খুলুন obsidian devtools # আপনি যে কমিউনিটি প্লাগইন তৈরি করছেন তা রিলোড করুন obsidian plugin:reload id=my-plugin # অ্যাপের একটি স্ক্রিনশট নিন obsidian dev:screenshot path=screenshot.png # অ্যাপ কনসোলে JavaScript চালান obsidian eval code="app.vault.getFiles().length" ``` ## কীভাবে করবেন ### প্যারামিটার এবং ফ্ল্যাগ ব্যবহার করুন কমান্ডগুলো **প্যারামিটার** এবং **ফ্ল্যাগ** ব্যবহার করতে পারে। বেশিরভাগ কমান্ডের কোনো প্যারামিটার বা ফ্ল্যাগের প্রয়োজন হয় না। প্রয়োজনীয় প্যারামিটারগুলো `required` হিসেবে চিহ্নিত করা থাকে। উদাহরণস্বরূপ: ```shell # ডিফল্ট "Untitled" নাম ব্যবহার করে একটি নতুন নোট তৈরি করুন obsidian create ``` একটি **প্যারামিটার** একটি মান নেয়, যা `parameter=value` হিসেবে লেখা হয়। যদি মানের মধ্যে স্পেস থাকে, তাহলে এটি উদ্ধৃতিতে মুড়ে দিন: ```shell # "Hello world" কনটেন্ট সহ "Note" নামে একটি নতুন নোট তৈরি করুন obsidian create name=Note content="Hello world" ``` একটি **ফ্ল্যাগ** হলো মান ছাড়া একটি বুলিয়ান সুইচ। এটি চালু করতে এটি অন্তর্ভুক্ত করুন, উদাহরণস্বরূপ `open` এবং `overwrite` হলো ফ্ল্যাগ: ```shell # একটি নোট তৈরি করুন এবং এটি খুলুন obsidian create name=Note content="Hello" open overwrite ``` মাল্টিলাইন কনটেন্টের জন্য নতুন লাইনের জন্য `\n` ব্যবহার করুন। ট্যাবের জন্য `\t` ব্যবহার করুন। ```bash obsidian create name=Note content="# Title\n\nBody text" ``` ### একটি ভল্ট টার্গেট করুন যদি আপনার টার্মিনালের বর্তমান ওয়ার্কিং ডিরেক্টরি একটি ভল্ট ফোল্ডার হয়, তাহলে ডিফল্টভাবে সেই ভল্টটি ব্যবহার করা হয়। অন্যথায়, বর্তমানে সক্রিয় ভল্টটি ব্যবহার করা হয়। একটি নির্দিষ্ট ভল্ট টার্গেট করতে `vault=<name>` অথবা `vault=<id>` ব্যবহার করুন। এটি অবশ্যই আপনার কমান্ডের আগে প্রথম প্যারামিটার হতে হবে: ```shell obsidian vault=Notes daily obsidian vault="My Vault" search query="test" ``` TUI-তে, একটি ভিন্ন ভল্টে পরিবর্তন করতে `vault:open <name>` অথবা `<id>` ব্যবহার করুন। ### একটি ফাইল টার্গেট করুন একটি নির্দিষ্ট ফাইল টার্গেট করতে অনেক কমান্ড `file` এবং `path` প্যারামিটার গ্রহণ করে। যদি কোনোটিই প্রদান করা না হয়, তাহলে কমান্ডটি ডিফল্টভাবে সক্রিয় ফাইল ব্যবহার করে। - `file=<name>` [[ইন্টারনাল লিঙ্ক|উইকিলিঙ্কের]] মতো একই লিঙ্ক রেজোলিউশন ব্যবহার করে ফাইলটি রেজলভ করে, সম্পূর্ণ পাথ বা এক্সটেনশন ছাড়াই ফাইল নাম দিয়ে ম্যাচ করে। - `path=<path>` এর জন্য ভল্ট রুট থেকে সঠিক পাথ প্রয়োজন, যেমন `folder/note.md`। ```shell # যদি "Recipe.md" একমাত্র ফাইল হয় যার এই নাম রয়েছে তাহলে এগুলো সমতুল্য obsidian read file=Recipe obsidian read path="Templates/Recipe.md" ``` ### আউটপুট কপি করুন আউটপুট ক্লিপবোর্ডে কপি করতে যেকোনো কমান্ডে `--copy` যোগ করুন: ```shell read --copy search query="TODO" --copy ``` ## সাধারণ কমান্ড ### `help` সব উপলব্ধ কমান্ডের তালিকা দেখান। | প্যারামিটার | বিবরণ | | ----------- | --------------------------------- | | `<command>` | একটি নির্দিষ্ট কমান্ডের জন্য সহায়তা দেখান। | ### `version` Obsidian সংস্করণ দেখান। ### `reload` অ্যাপ উইন্ডো রিলোড করুন। ### `restart` অ্যাপ পুনরায় চালু করুন। ## Bases [[বেসেস পরিচিতি|Bases]] এর জন্য কমান্ড। ### `bases` ভল্টের সব `.base` ফাইল তালিকাভুক্ত করুন। ### `base:views` বর্তমান base ফাইলের ভিউ তালিকাভুক্ত করুন। ### `base:create` একটি base-এ একটি নতুন আইটেম তৈরি করুন। যদি কোনো ফাইল নির্দিষ্ট করা না থাকে তাহলে ডিফল্টভাবে সক্রিয় base ভিউ ব্যবহার করে। ```bash file=<name> # base ফাইলের নাম path=<path> # base ফাইলের পাথ view=<name> # ভিউয়ের নাম name=<name> # নতুন ফাইলের নাম content=<text> # প্রাথমিক কনটেন্ট open # তৈরির পরে ফাইল খুলুন newtab # নতুন ট্যাবে খুলুন ``` ### `base:query` একটি base কোয়েরি করুন এবং ফলাফল ফেরত দিন। ```bash file=<name> # base ফাইলের নাম path=<path> # base ফাইলের পাথ view=<name> # কোয়েরি করার ভিউয়ের নাম format=json|csv|tsv|md|paths # আউটপুট ফরম্যাট (ডিফল্ট: json) ``` ## Bookmarks [[বুকমার্ক]] এর জন্য কমান্ড। ### `bookmarks` বুকমার্ক তালিকাভুক্ত করুন। ```bash total # বুকমার্কের সংখ্যা ফেরত দিন verbose # বুকমার্কের ধরন অন্তর্ভুক্ত করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `bookmark` একটি বুকমার্ক যোগ করুন। ```bash file=<path> # বুকমার্ক করার ফাইল subpath=<subpath> # ফাইলের মধ্যে সাবপাথ (হেডিং বা ব্লক) folder=<path> # বুকমার্ক করার ফোল্ডার search=<query> # বুকমার্ক করার অনুসন্ধান কোয়েরি url=<url> # বুকমার্ক করার URL title=<title> # বুকমার্কের শিরোনাম ``` ## Command palette [[কমান্ড প্যালেট]] এবং [[হট-কিই]] এর জন্য কমান্ড। এতে প্লাগইন দ্বারা নিবন্ধিত সব কমান্ড অন্তর্ভুক্ত। ### `commands` উপলব্ধ কমান্ড আইডি তালিকাভুক্ত করুন। ```bash filter=<prefix> # আইডি প্রিফিক্স দিয়ে ফিল্টার করুন ``` ### `command` একটি Obsidian কমান্ড চালান। ```bash id=<command-id> # (প্রয়োজনীয়) চালানোর জন্য কমান্ড আইডি ``` ### `hotkeys` সব কমান্ডের জন্য হট-কিই তালিকাভুক্ত করুন। ```bash total # হট-কিইর সংখ্যা ফেরত দিন verbose # হট-কিই কাস্টম কিনা তা দেখান format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `hotkey` একটি কমান্ডের জন্য হট-কিই পান। ```bash id=<command-id> # (প্রয়োজনীয়) কমান্ড আইডি verbose # কাস্টম নাকি ডিফল্ট তা দেখান ``` ## Daily notes [[দৈনিক নোট]] এর জন্য কমান্ড। ### `daily` দৈনিক নোট খুলুন। ```bash paneType=tab|split|window # খোলার জন্য পেন টাইপ ``` ### `daily:path` দৈনিক নোটের পাথ পান। ফাইলটি এখনও তৈরি না হলেও প্রত্যাশিত পাথ ফেরত দেয়। ### `daily:read` দৈনিক নোটের কনটেন্ট পড়ুন। ### `daily:append` দৈনিক নোটে কনটেন্ট যোগ করুন। ```bash content=<text> # (প্রয়োজনীয়) যোগ করার কনটেন্ট paneType=tab|split|window # খোলার জন্য পেন টাইপ inline # নতুন লাইন ছাড়াই যোগ করুন open # যোগ করার পরে ফাইল খুলুন ``` ### `daily:prepend` দৈনিক নোটের শুরুতে কনটেন্ট যোগ করুন। ```bash content=<text> # (প্রয়োজনীয়) শুরুতে যোগ করার কনটেন্ট paneType=tab|split|window # খোলার জন্য পেন টাইপ inline # নতুন লাইন ছাড়াই যোগ করুন open # যোগ করার পরে ফাইল খুলুন ``` ## File history ### `diff` স্থানীয় [[ফাইল পুনরুদ্ধার]] এবং [[Obsidian Sync পরিচিতি|Sync]] থেকে সংস্করণ তালিকাভুক্ত করুন বা তুলনা করুন। সংস্করণগুলো নতুন থেকে পুরাতন ক্রমে সংখ্যায়িত। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ from=<n> # যে সংস্করণ থেকে ডিফ করতে হবে to=<n> # যে সংস্করণ পর্যন্ত ডিফ করতে হবে filter=local|sync # সংস্করণের উৎস দিয়ে ফিল্টার করুন ``` **উদাহরণ:** ```shell # সক্রিয় ফাইলের সব সংস্করণ তালিকাভুক্ত করুন diff # একটি নির্দিষ্ট ফাইলের সব সংস্করণ তালিকাভুক্ত করুন diff file=Recipe # সর্বশেষ সংস্করণকে বর্তমান ফাইলের সাথে তুলনা করুন diff file=Recipe from=1 # দুটি সংস্করণ তুলনা করুন diff file=Recipe from=2 to=1 # শুধুমাত্র Sync সংস্করণ দেখান diff filter=sync ``` ### `history` শুধুমাত্র [[ফাইল পুনরুদ্ধার]] থেকে সংস্করণ তালিকাভুক্ত করুন। সমতুল্য Sync কমান্ডের জন্য [[#Sync|sync:history]] দেখুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `history:list` স্থানীয় হিস্টোরি সহ সব ফাইল তালিকাভুক্ত করুন। ### `history:read` একটি স্থানীয় হিস্টোরি সংস্করণ পড়ুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ version=<n> # সংস্করণ সংখ্যা (ডিফল্ট: 1) ``` ### `history:restore` একটি স্থানীয় হিস্টোরি সংস্করণ পুনরুদ্ধার করুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ version=<n> # (প্রয়োজনীয়) সংস্করণ সংখ্যা ``` ### `history:open` ফাইল রিকভারি খুলুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ## Files and folders ### `file` ফাইলের তথ্য দেখান (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` উদাহরণ: ``` path Notes/Recipe.md name Recipe extension md size 1024 created 1700000000000 modified 1700001000000 ``` ### `files` ভল্টের ফাইল তালিকাভুক্ত করুন। ```bash folder=<path> # ফোল্ডার দিয়ে ফিল্টার করুন ext=<extension> # এক্সটেনশন দিয়ে ফিল্টার করুন total # ফাইলের সংখ্যা ফেরত দিন ``` ### `folder` ফোল্ডারের তথ্য দেখান। ```bash path=<path> # (প্রয়োজনীয়) ফোল্ডারের পাথ info=files|folders|size # শুধুমাত্র নির্দিষ্ট তথ্য ফেরত দিন ``` ### `folders` ভল্টের ফোল্ডার তালিকাভুক্ত করুন। ```bash folder=<path> # প্যারেন্ট ফোল্ডার দিয়ে ফিল্টার করুন total # ফোল্ডারের সংখ্যা ফেরত দিন ``` ### `open` একটি ফাইল খুলুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ newtab # নতুন ট্যাবে খুলুন ``` ### `create` একটি ফাইল তৈরি করুন বা ওভাররাইট করুন। ```bash name=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ content=<text> # প্রাথমিক কনটেন্ট template=<name> # ব্যবহার করার টেমপ্লেট overwrite # ফাইল থাকলে ওভাররাইট করুন open # তৈরির পরে ফাইল খুলুন newtab # নতুন ট্যাবে খুলুন ``` ### `read` ফাইলের কনটেন্ট পড়ুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `append` একটি ফাইলে কনটেন্ট যোগ করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ content=<text> # (প্রয়োজনীয়) যোগ করার কনটেন্ট inline # নতুন লাইন ছাড়াই যোগ করুন ``` ### `prepend` ফ্রন্টম্যাটারের পরে কনটেন্ট যোগ করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ content=<text> # (প্রয়োজনীয়) শুরুতে যোগ করার কনটেন্ট inline # নতুন লাইন ছাড়াই যোগ করুন ``` ### `move` একটি ফাইল সরান বা নাম পরিবর্তন করুন (ডিফল্ট: সক্রিয় ফাইল)। যদি আপনার [[সেটিংস#Automatically update internal links|ভল্ট সেটিংসে]] চালু থাকে, তাহলে এটি স্বয়ংক্রিয়ভাবে [[ইন্টারনাল লিঙ্ক|অভ্যন্তরীণ লিঙ্ক]] আপডেট করবে। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ to=<path> # (প্রয়োজনীয়) গন্তব্য ফোল্ডার বা পাথ ``` ### `rename` একটি ফাইলের নাম পরিবর্তন করুন (ডিফল্ট: সক্রিয় ফাইল)। নতুন নাম থেকে ফাইল এক্সটেনশন বাদ দিলে এটি স্বয়ংক্রিয়ভাবে সংরক্ষিত থাকে। একই সাথে একটি ফাইলের নাম পরিবর্তন ও সরাতে [[#`move`|move]] ব্যবহার করুন। যদি আপনার [[সেটিংস#Automatically update internal links|ভল্ট সেটিংসে]] চালু থাকে, তাহলে এটি স্বয়ংক্রিয়ভাবে [[ইন্টারনাল লিঙ্ক|অভ্যন্তরীণ লিঙ্ক]] আপডেট করবে। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ name=<name> # (প্রয়োজনীয়) নতুন ফাইলের নাম ``` ### `delete` একটি ফাইল মুছুন (ডিফল্ট: সক্রিয় ফাইল, ডিফল্টভাবে ট্র্যাশে)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ permanent # ট্র্যাশ বাদ দিয়ে স্থায়ীভাবে মুছুন ``` ## Links [[ব্যাকলিঙ্ক]] এবং [[আউটগোয়িং লিঙ্ক]] এর জন্য কমান্ড। ### `backlinks` একটি ফাইলের ব্যাকলিঙ্ক তালিকাভুক্ত করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # টার্গেট ফাইলের নাম path=<path> # টার্গেট ফাইলের পাথ counts # লিঙ্ক সংখ্যা অন্তর্ভুক্ত করুন total # ব্যাকলিঙ্কের সংখ্যা ফেরত দিন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `links` একটি ফাইল থেকে আউটগোয়িং লিঙ্ক তালিকাভুক্ত করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ total # লিঙ্ক সংখ্যা ফেরত দিন ``` ### `unresolved` ভল্টে অমীমাংসিত লিঙ্ক তালিকাভুক্ত করুন। ```bash total # অমীমাংসিত লিঙ্ক সংখ্যা ফেরত দিন counts # লিঙ্ক সংখ্যা অন্তর্ভুক্ত করুন verbose # সোর্স ফাইল অন্তর্ভুক্ত করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `orphans` কোনো ইনকামিং লিঙ্ক নেই এমন ফাইল তালিকাভুক্ত করুন। ```bash total # অরফানের সংখ্যা ফেরত দিন ``` ### `deadends` কোনো আউটগোয়িং লিঙ্ক নেই এমন ফাইল তালিকাভুক্ত করুন। ```bash total # ডেড-এন্ডের সংখ্যা ফেরত দিন ``` ## Outline [[রূপরেখা]] এর জন্য কমান্ড। ### `outline` বর্তমান ফাইলের জন্য হেডিং দেখান। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ format=tree|md|json # আউটপুট ফরম্যাট (ডিফল্ট: tree) total # হেডিং সংখ্যা ফেরত দিন ``` ## Plugins [[কোর প্লাগইন]] এবং [[কমিউনিটি প্লাগইন]] এর জন্য কমান্ড। ### `plugins` ইনস্টল করা প্লাগইন তালিকাভুক্ত করুন। ```bash filter=core|community # প্লাগইনের ধরন দিয়ে ফিল্টার করুন versions # সংস্করণ সংখ্যা অন্তর্ভুক্ত করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `plugins:enabled` সক্রিয় প্লাগইন তালিকাভুক্ত করুন। ```bash filter=core|community # প্লাগইনের ধরন দিয়ে ফিল্টার করুন versions # সংস্করণ সংখ্যা অন্তর্ভুক্ত করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) ``` ### `plugins:restrict` নিয়ন্ত্রিত মোড টগল করুন বা পরীক্ষা করুন। ```bash on # নিয়ন্ত্রিত মোড সক্রিয় করুন off # নিয়ন্ত্রিত মোড নিষ্ক্রিয় করুন ``` ### `plugin` প্লাগইনের তথ্য পান। ```bash id=<plugin-id> # (প্রয়োজনীয়) প্লাগইন আইডি ``` ### `plugin:enable` একটি প্লাগইন সক্রিয় করুন। ```bash id=<id> # (প্রয়োজনীয়) প্লাগইন আইডি filter=core|community # প্লাগইনের ধরন ``` ### `plugin:disable` একটি প্লাগইন নিষ্ক্রিয় করুন। ```bash id=<id> # (প্রয়োজনীয়) প্লাগইন আইডি filter=core|community # প্লাগইনের ধরন ``` ### `plugin:install` একটি কমিউনিটি প্লাগইন ইনস্টল করুন। ```bash id=<id> # (প্রয়োজনীয়) প্লাগইন আইডি enable # ইনস্টলের পরে সক্রিয় করুন ``` ### `plugin:uninstall` একটি কমিউনিটি প্লাগইন আনইনস্টল করুন। ```bash id=<id> # (প্রয়োজনীয়) প্লাগইন আইডি ``` ### `plugin:reload` একটি প্লাগইন রিলোড করুন (ডেভেলপারদের জন্য)। ```bash id=<id> # (প্রয়োজনীয়) প্লাগইন আইডি ``` ## Properties [[প্রপার্টি]] সম্পর্কিত কমান্ড। ### `aliases` ভল্টের এলিয়াস তালিকাভুক্ত করুন। একটি নির্দিষ্ট ফাইলের এলিয়াস দেখাতে `active` অথবা `file`/`path` ব্যবহার করুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ total # এলিয়াসের সংখ্যা ফেরত দিন verbose # ফাইলের পাথ অন্তর্ভুক্ত করুন active # সক্রিয় ফাইলের এলিয়াস দেখান ``` ### `properties` ভল্টের প্রপার্টি তালিকাভুক্ত করুন। একটি নির্দিষ্ট ফাইলের প্রপার্টি দেখাতে `active` অথবা `file`/`path` ব্যবহার করুন। ```bash file=<name> # ফাইলের জন্য প্রপার্টি দেখান path=<path> # পাথের জন্য প্রপার্টি দেখান name=<name> # নির্দিষ্ট প্রপার্টি সংখ্যা পান sort=count # সংখ্যা দিয়ে সাজান (ডিফল্ট: name) format=yaml|json|tsv # আউটপুট ফরম্যাট (ডিফল্ট: yaml) total # প্রপার্টি সংখ্যা ফেরত দিন counts # ব্যবহারের সংখ্যা অন্তর্ভুক্ত করুন active # সক্রিয় ফাইলের প্রপার্টি দেখান ``` ### `property:set` একটি ফাইলে একটি প্রপার্টি সেট করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash name=<name> # (প্রয়োজনীয়) প্রপার্টির নাম value=<value> # (প্রয়োজনীয়) প্রপার্টির মান type=text|list|number|checkbox|date|datetime # প্রপার্টির ধরন file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `property:remove` একটি ফাইল থেকে একটি প্রপার্টি সরান (ডিফল্ট: সক্রিয় ফাইল)। ```bash name=<name> # (প্রয়োজনীয়) প্রপার্টির নাম file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `property:read` একটি ফাইল থেকে একটি প্রপার্টির মান পড়ুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash name=<name> # (প্রয়োজনীয়) প্রপার্টির নাম file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ## Publish [[Obsidian Publish পরিচিতি|Obsidian Publish]] এর জন্য কমান্ড। ### `publish:site` পাবলিশ সাইটের তথ্য দেখান (স্লাগ, URL)। ### `publish:list` প্রকাশিত ফাইল তালিকাভুক্ত করুন। ```bash total # প্রকাশিত ফাইলের সংখ্যা ফেরত দিন ``` ### `publish:status` পাবলিশ পরিবর্তন তালিকাভুক্ত করুন। ```bash total # পরিবর্তনের সংখ্যা ফেরত দিন new # শুধুমাত্র নতুন ফাইল দেখান changed # শুধুমাত্র পরিবর্তিত ফাইল দেখান deleted # শুধুমাত্র মুছে ফেলা ফাইল দেখান ``` ### `publish:add` একটি ফাইল বা সব পরিবর্তিত ফাইল প্রকাশ করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ changed # সব পরিবর্তিত ফাইল প্রকাশ করুন ``` ### `publish:remove` একটি ফাইল অপ্রকাশিত করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `publish:open` প্রকাশিত সাইটে ফাইল খুলুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ## Random notes [[রান্ডম নোট]] এর জন্য কমান্ড। ### `random` একটি র‍্যান্ডম নোট খুলুন। ```bash folder=<path> # ফোল্ডারে সীমাবদ্ধ করুন newtab # নতুন ট্যাবে খুলুন ``` ### `random:read` একটি র‍্যান্ডম নোট পড়ুন (পাথ অন্তর্ভুক্ত)। ```bash folder=<path> # ফোল্ডারে সীমাবদ্ধ করুন ``` ## Search [[অনুসন্ধান]] এর জন্য কমান্ড। ### `search` টেক্সটের জন্য ভল্ট অনুসন্ধান করুন। ম্যাচ করা ফাইলের পাথ ফেরত দেয়। ```bash query=<text> # (প্রয়োজনীয়) অনুসন্ধান কোয়েরি path=<folder> # ফোল্ডারে সীমাবদ্ধ করুন limit=<n> # সর্বোচ্চ ফাইল format=text|json # আউটপুট ফরম্যাট (ডিফল্ট: text) total # ম্যাচের সংখ্যা ফেরত দিন case # কেস সেনসিটিভ ``` ### `search:context` ম্যাচিং লাইন কনটেক্সট সহ অনুসন্ধান করুন। grep-স্টাইল `path:line: text` আউটপুট ফেরত দেয়। ```bash query=<text> # (প্রয়োজনীয়) অনুসন্ধান কোয়েরি path=<folder> # ফোল্ডারে সীমাবদ্ধ করুন limit=<n> # সর্বোচ্চ ফাইল format=text|json # আউটপুট ফরম্যাট (ডিফল্ট: text) case # কেস সেনসিটিভ ``` ### `search:open` অনুসন্ধান ভিউ খুলুন। ```bash query=<text> # প্রাথমিক অনুসন্ধান কোয়েরি ``` ## Sync [[Obsidian Sync পরিচিতি|Obsidian Sync]] এর জন্য কমান্ড। > [!tip] ডেস্কটপ অ্যাপ ছাড়াই সিঙ্ক > এই কমান্ডগুলো চলমান Obsidian অ্যাপের মধ্যে Sync নিয়ন্ত্রণ করে। ডেস্কটপ অ্যাপ ছাড়াই কমান্ড লাইন থেকে ভল্ট সিঙ্ক করতে, [[Headless Sync]] দেখুন। ### `sync` সিঙ্ক থামান বা পুনরায় শুরু করুন। ```bash on # সিঙ্ক পুনরায় শুরু করুন off # সিঙ্ক থামান ``` ### `sync:status` সিঙ্কের স্ট্যাটাস এবং ব্যবহার দেখান। ### `sync:history` একটি ফাইলের জন্য সিঙ্ক সংস্করণ হিস্টোরি তালিকাভুক্ত করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ total # সংস্করণ সংখ্যা ফেরত দিন ``` ### `sync:read` একটি সিঙ্ক সংস্করণ পড়ুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ version=<n> # (প্রয়োজনীয়) সংস্করণ সংখ্যা ``` ### `sync:restore` একটি সিঙ্ক সংস্করণ পুনরুদ্ধার করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ version=<n> # (প্রয়োজনীয়) সংস্করণ সংখ্যা ``` ### `sync:open` সিঙ্ক হিস্টোরি খুলুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ ``` ### `sync:deleted` সিঙ্কে মুছে ফেলা ফাইল তালিকাভুক্ত করুন। ```bash total # মুছে ফেলা ফাইলের সংখ্যা ফেরত দিন ``` ## Tags [[ট্যাগ]] এর জন্য কমান্ড। ### `tags` ভল্টের ট্যাগ তালিকাভুক্ত করুন। একটি নির্দিষ্ট ফাইলের ট্যাগ দেখাতে `active` অথবা `file`/`path` ব্যবহার করুন। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ sort=count # সংখ্যা দিয়ে সাজান (ডিফল্ট: name) total # ট্যাগের সংখ্যা ফেরত দিন counts # ট্যাগের সংখ্যা অন্তর্ভুক্ত করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: tsv) active # সক্রিয় ফাইলের ট্যাগ দেখান ``` ### `tag` ট্যাগের তথ্য পান। ```bash name=<tag> # (প্রয়োজনীয়) ট্যাগের নাম total # ব্যবহারের সংখ্যা ফেরত দিন verbose # ফাইলের তালিকা এবং সংখ্যা অন্তর্ভুক্ত করুন ``` ## Tasks টাস্ক ম্যানেজমেন্টের জন্য কমান্ড। ### `tasks` ভল্টের টাস্ক তালিকাভুক্ত করুন। একটি নির্দিষ্ট ফাইলের টাস্ক দেখাতে `active` অথবা `file`/`path` ব্যবহার করুন। ```bash file=<name> # ফাইলের নাম দিয়ে ফিল্টার করুন path=<path> # ফাইলের পাথ দিয়ে ফিল্টার করুন status="<char>" # স্ট্যাটাস অক্ষর দিয়ে ফিল্টার করুন total # টাস্কের সংখ্যা ফেরত দিন done # সম্পন্ন টাস্ক দেখান todo # অসম্পূর্ণ টাস্ক দেখান verbose # লাইন নম্বর সহ ফাইল অনুযায়ী গ্রুপ করুন format=json|tsv|csv # আউটপুট ফরম্যাট (ডিফল্ট: text) active # সক্রিয় ফাইলের টাস্ক দেখান daily # দৈনিক নোট থেকে টাস্ক দেখান ``` **উদাহরণ:** ```bash # ভল্টের সব টাস্ক তালিকাভুক্ত করুন tasks # ভল্টের অসম্পূর্ণ টাস্ক তালিকাভুক্ত করুন tasks todo # একটি নির্দিষ্ট ফাইল থেকে সম্পন্ন টাস্ক তালিকাভুক্ত করুন tasks file=Recipe done # আজকের দৈনিক নোট থেকে টাস্ক তালিকাভুক্ত করুন tasks daily # দৈনিক নোটে টাস্কের সংখ্যা গণনা করুন tasks daily total # ফাইলের পাথ এবং লাইন নম্বর সহ টাস্ক তালিকাভুক্ত করুন tasks verbose # কাস্টম স্ট্যাটাস দিয়ে ফিল্টার করুন (বিশেষ অক্ষর উদ্ধৃত করুন) tasks 'status=?' ``` ### `task` একটি টাস্ক দেখান বা আপডেট করুন। ```bash ref=<path:line> # টাস্ক রেফারেন্স (path:line) file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ line=<n> # লাইন নম্বর status="<char>" # স্ট্যাটাস অক্ষর সেট করুন toggle # টাস্কের স্ট্যাটাস টগল করুন daily # দৈনিক নোট done # সম্পন্ন হিসেবে চিহ্নিত করুন todo # করণীয় হিসেবে চিহ্নিত করুন ``` **উদাহরণ:** ```bash # টাস্কের তথ্য দেখান task file=Recipe line=8 task ref="Recipe.md:8" # টাস্ক সম্পন্ন হওয়া টগল করুন task ref="Recipe.md:8" toggle # দৈনিক নোটে টাস্ক টগল করুন task daily line=3 toggle # টাস্কের স্ট্যাটাস সেট করুন task file=Recipe line=8 done # → [x] task file=Recipe line=8 todo # → [ ] task file=Recipe line=8 status=- # → [-] task daily line=3 done # দৈনিক নোটের টাস্ক সম্পন্ন হিসেবে চিহ্নিত করুন ``` ## Templates [[প্লাগইন/টেমপ্লেট|Templates]] এর জন্য কমান্ড। ### `templates` টেমপ্লেট তালিকাভুক্ত করুন। ```bash total # টেমপ্লেটের সংখ্যা ফেরত দিন ``` ### `template:read` টেমপ্লেটের কনটেন্ট পড়ুন। ```bash name=<template> # (প্রয়োজনীয়) টেমপ্লেটের নাম title=<title> # ভ্যারিয়েবল রেজোলিউশনের জন্য শিরোনাম resolve # টেমপ্লেট ভ্যারিয়েবল রেজলভ করুন ``` ### `template:insert` সক্রিয় ফাইলে টেমপ্লেট সন্নিবেশ করুন। ```bash name=<template> # (প্রয়োজনীয়) টেমপ্লেটের নাম ``` **নোট:** - `resolve` অপশন `{{date}}`, `{{time}}`, `{{title}}` ভ্যারিয়েবল প্রক্রিয়া করে - একটি টেমপ্লেট দিয়ে একটি ফাইল তৈরি করতে `create path=<path> template=<name>` ব্যবহার করুন ## Themes and snippets [[থিম]] এবং [[CSS স্নিপেট]] এর জন্য কমান্ড। ### `themes` ইনস্টল করা থিম তালিকাভুক্ত করুন। ```bash versions # সংস্করণ সংখ্যা অন্তর্ভুক্ত করুন ``` ### `theme` সক্রিয় থিম দেখান বা তথ্য পান। ```bash name=<name> # বিস্তারিত জানার জন্য থিমের নাম ``` ### `theme:set` সক্রিয় থিম সেট করুন। ```bash name=<name> # (প্রয়োজনীয়) থিমের নাম (ডিফল্টের জন্য খালি রাখুন) ``` ### `theme:install` একটি কমিউনিটি থিম ইনস্টল করুন। ```bash name=<name> # (প্রয়োজনীয়) থিমের নাম enable # ইনস্টলের পরে সক্রিয় করুন ``` ### `theme:uninstall` একটি থিম আনইনস্টল করুন। ```bash name=<name> # (প্রয়োজনীয়) থিমের নাম ``` ### `snippets` ইনস্টল করা CSS স্নিপেট তালিকাভুক্ত করুন। ### `snippets:enabled` সক্রিয় CSS স্নিপেট তালিকাভুক্ত করুন। ### `snippet:enable` একটি CSS স্নিপেট সক্রিয় করুন। ```bash name=<name> # (প্রয়োজনীয়) স্নিপেটের নাম ``` ### `snippet:disable` একটি CSS স্নিপেট নিষ্ক্রিয় করুন। ```bash name=<name> # (প্রয়োজনীয়) স্নিপেটের নাম ``` ## Unique notes [[একক নোট নির্মাতা]] এর জন্য কমান্ড। ### `unique` ইউনিক নোট তৈরি করুন। ```bash name=<text> # নোটের নাম content=<text> # প্রাথমিক কনটেন্ট paneType=tab|split|window # খোলার জন্য পেন টাইপ open # তৈরির পরে ফাইল খুলুন ``` ## Vault ### `vault` ভল্টের তথ্য দেখান। ```bash info=name|path|files|folders|size # শুধুমাত্র নির্দিষ্ট তথ্য ফেরত দিন ``` ### `vaults` পরিচিত ভল্ট তালিকাভুক্ত করুন। ```bash total # ভল্টের সংখ্যা ফেরত দিন verbose # ভল্টের পাথ অন্তর্ভুক্ত করুন ``` ### `vault:open` একটি ভিন্ন ভল্টে পরিবর্তন করুন (শুধুমাত্র TUI)। ```bash name=<name> # (প্রয়োজনীয়) ভল্টের নাম ``` ## Web viewer [[ওয়েব ভিউয়ার]] এর জন্য কমান্ড। ### `web` Web viewer-এ URL খুলুন। ```bash url=<url> # (প্রয়োজনীয়) খোলার জন্য URL newtab # নতুন ট্যাবে খুলুন ``` ## Wordcount [[শব্দ গণনা]] এর জন্য কমান্ড। ### `wordcount` শব্দ এবং অক্ষর গণনা করুন (ডিফল্ট: সক্রিয় ফাইল)। ```bash file=<name> # ফাইলের নাম path=<path> # ফাইলের পাথ words # শুধুমাত্র শব্দ সংখ্যা ফেরত দিন characters # শুধুমাত্র অক্ষর সংখ্যা ফেরত দিন ``` ## Workspace [[ওয়ার্কস্পেস]] এবং [[ওয়ার্কস্পেস]] প্লাগইনের জন্য কমান্ড। ### `workspace` ওয়ার্কস্পেস ট্রি দেখান। ```bash ids # ওয়ার্কস্পেস আইটেম আইডি অন্তর্ভুক্ত করুন ``` ### `workspaces` সংরক্ষিত ওয়ার্কস্পেস তালিকাভুক্ত করুন। ```bash total # ওয়ার্কস্পেসের সংখ্যা ফেরত দিন ``` ### `workspace:save` বর্তমান লেআউট ওয়ার্কস্পেস হিসেবে সংরক্ষণ করুন। ```bash name=<name> # ওয়ার্কস্পেসের নাম ``` ### `workspace:load` একটি সংরক্ষিত ওয়ার্কস্পেস লোড করুন। ```bash name=<name> # (প্রয়োজনীয়) ওয়ার্কস্পেসের নাম ``` ### `workspace:delete` একটি সংরক্ষিত ওয়ার্কস্পেস মুছুন। ```bash name=<name> # (প্রয়োজনীয়) ওয়ার্কস্পেসের নাম ``` ### `tabs` খোলা ট্যাব তালিকাভুক্ত করুন। ```bash ids # ট্যাব আইডি অন্তর্ভুক্ত করুন ``` ### `tab:open` একটি নতুন ট্যাব খুলুন। ```bash group=<id> # ট্যাব গ্রুপ আইডি file=<path> # খোলার জন্য ফাইল view=<type> # খোলার জন্য ভিউ টাইপ ``` ### `recents` সম্প্রতি খোলা ফাইল তালিকাভুক্ত করুন। ```bash total # সাম্প্রতিক ফাইলের সংখ্যা ফেরত দিন ``` ## Developer commands [[কমিউনিটি প্লাগইন]] এবং [[থিম]] তৈরি করতে সাহায্যকারী কমান্ড। [Obsidian ডেভেলপার ডকুমেন্টেশনে](https://docs.obsidian.md) গিয়ে আরও জানুন। ### `devtools` Electron dev tools টগল করুন। ### `dev:debug` Chrome DevTools Protocol ডিবাগার সংযুক্ত/বিচ্ছিন্ন করুন। ```bash on # ডিবাগার সংযুক্ত করুন off # ডিবাগার বিচ্ছিন্ন করুন ``` ### `dev:cdp` একটি Chrome DevTools Protocol কমান্ড চালান। ```bash method=<CDP.method> # (প্রয়োজনীয়) কল করার জন্য CDP মেথড params=<json> # JSON হিসেবে মেথড প্যারামিটার ``` ### `dev:errors` ক্যাপচার করা JavaScript এরর দেখান। ```bash clear # এরর বাফার পরিষ্কার করুন ``` ### `dev:screenshot` একটি স্ক্রিনশট নিন (base64 PNG ফেরত দেয়)। ```bash path=<filename> # আউটপুট ফাইল পাথ ``` ### `dev:console` ক্যাপচার করা কনসোল বার্তা দেখান। ```bash limit=<n> # দেখানোর সর্বোচ্চ বার্তা (ডিফল্ট 50) level=log|warn|error|info|debug # লগ লেভেল দিয়ে ফিল্টার করুন clear # কনসোল বাফার পরিষ্কার করুন ``` ### `dev:css` সোর্স অবস্থান সহ CSS পরিদর্শন করুন। ```bash selector=<css> # (প্রয়োজনীয়) CSS সিলেক্টর prop=<name> # প্রপার্টি নাম দিয়ে ফিল্টার করুন ``` ### `dev:dom` DOM এলিমেন্ট কোয়েরি করুন। ```bash selector=<css> # (প্রয়োজনীয়) CSS সিলেক্টর attr=<name> # অ্যাট্রিবিউটের মান পান css=<prop> # CSS প্রপার্টির মান পান total # এলিমেন্টের সংখ্যা ফেরত দিন text # টেক্সট কনটেন্ট ফেরত দিন inner # outerHTML এর পরিবর্তে innerHTML ফেরত দিন all # শুধু প্রথমটির পরিবর্তে সব ম্যাচ ফেরত দিন ``` ### `dev:mobile` মোবাইল এমুলেশন টগল করুন। ```bash on # মোবাইল এমুলেশন সক্রিয় করুন off # মোবাইল এমুলেশন নিষ্ক্রিয় করুন ``` ### `eval` JavaScript চালান এবং ফলাফল ফেরত দিন। ```bash code=<javascript> # (প্রয়োজনীয়) চালানোর জন্য JavaScript কোড ``` ## Keyboard shortcuts এই শর্টকাটগুলো [[#Use the terminal interface|TUI]] তে উপলব্ধ। ### নেভিগেশন | অ্যাকশন | শর্টকাট | | ----------------------------------------------------- | -------------- | | কার্সার বামে সরান | `←` / `Ctrl+B` | | কার্সার ডানে সরান (লাইনের শেষে সাজেশন গ্রহণ করে) | `→` / `Ctrl+F` | | লাইনের শুরুতে যান | `Ctrl+A` | | লাইনের শেষে যান | `Ctrl+E` | | এক শব্দ পেছনে যান | `Alt+B` | | এক শব্দ সামনে যান | `Alt+F` | ### সম্পাদনা | অ্যাকশন | শর্টকাট | | ----------------------- | -------------------------- | | লাইনের শুরু পর্যন্ত মুছুন | `Ctrl+U` | | লাইনের শেষ পর্যন্ত মুছুন | `Ctrl+K` | | আগের শব্দ মুছুন | `Ctrl+W` / `Alt+Backspace` | ### অটোকমপ্লিট | অ্যাকশন | শর্টকাট | | -------------------------------------------------- | ----------- | | সাজেশন মোডে প্রবেশ করুন / নির্বাচিত সাজেশন গ্রহণ করুন | `Tab` | | সাজেশন মোড থেকে বের হন | `Shift+Tab` | | সাজেশন মোডে প্রবেশ করুন (নতুন ইনপুট থেকে) | `↓` | | প্রথম/নির্বাচিত সাজেশন গ্রহণ করুন (লাইনের শেষে) | `→` | ### হিস্টোরি | অ্যাকশন | শর্টকাট | | ---------------------------------------------------------- | -------------- | | আগের হিস্টোরি এন্ট্রি / সাজেশন উপরে নেভিগেট করুন | `↑` / `Ctrl+P` | | পরবর্তী হিস্টোরি এন্ট্রি / সাজেশন নিচে নেভিগেট করুন | `↓` / `Ctrl+N` | | রিভার্স হিস্টোরি সার্চ (ফিল্টার করতে লিখুন, সাইকেল করতে `Ctrl+R`) | `Ctrl+R` | ### অন্যান্য | অ্যাকশন | শর্টকাট | | ------------------------------------------------------ | ------------------- | | কমান্ড চালান বা সাজেশন গ্রহণ করুন | `Enter` | | অটোকমপ্লিট আনডু করুন / সাজেশন মোড থেকে বের হন / ইনপুট পরিষ্কার করুন | `Escape` | | স্ক্রিন পরিষ্কার করুন | `Ctrl+L` | | প্রস্থান করুন | `Ctrl+C` / `Ctrl+D` | ## Troubleshooting যদি আপনার Obsidian CLI চালাতে সমস্যা হয়: - নিশ্চিত করুন আপনি সর্বশেষ [[Obsidian আপডেট করুন|Obsidian ইনস্টলার সংস্করণ]] (1.12.7 বা তার পরে) ব্যবহার করছেন। - যদি আপনি সবেমাত্র Obsidian একটি পুরোনো সংস্করণ থেকে আপডেট করে থাকেন, তাহলে CLI সেটিং বন্ধ করে আবার চালু করুন, এরপর Obsidian কে স্বয়ংক্রিয় PATH নিবন্ধন করার অনুমতি দিন। - PATH পরিবর্তনগুলো কার্যকর হওয়ার জন্য CLI নিবন্ধনের পরে আপনার টার্মিনাল পুনরায় চালু করুন। - Obsidian অবশ্যই চালু থাকতে হবে। CLI চলমান Obsidian ইনস্ট্যান্সের সাথে সংযোগ করে। ### Windows Windows-এ Obsidian CLI-এর জন্য Obsidian 1.12.7+ ইনস্টলার প্রয়োজন। দেখুন [[Obsidian আপডেট করুন|ইনস্টলার সংস্করণ আপডেট]]। Windows একটি টার্মিনাল রিডাইরেক্টর ব্যবহার করে যা Obsidian কে সঠিকভাবে stdin/stdout এর সাথে সংযুক্ত করে। এটি প্রয়োজনীয় কারণ Obsidian সাধারণত একটি GUI অ্যাপ হিসেবে চলে যা Windows-এ টার্মিনাল আউটপুটের সাথে সামঞ্জস্যপূর্ণ নয়। যখন আপনি Obsidian 1.12.7+ ইনস্টল করেন তখন `Obsidian.com` টার্মিনাল রিডাইরেক্টরটি সেই ফোল্ডারে যোগ করা হবে যেখানে আপনি `Obsidian.exe` ফাইলটি ইনস্টল করেছেন। CLI নিবন্ধন আপনার ইউজারের PATH ভ্যারিয়েবলে Obsidian যোগ করে, যা টার্মিনাল পুনরায় চালু করার পরেই কার্যকর হয়। ### macOS CLI নিবন্ধন `/usr/local/bin/obsidian` এ একটি সিমলিংক তৈরি করে যা অ্যাপের ভেতরে বান্ডিল করা CLI বাইনারির দিকে নির্দেশ করে। এর জন্য অ্যাডমিনিস্ট্রেটর সুবিধা প্রয়োজন — আপনাকে একটি সিস্টেম ডায়ালগের মাধ্যমে জিজ্ঞাসা করা হবে। সিমলিংকটি বিদ্যমান আছে এবং সঠিক বাইনারির দিকে নির্দেশ করছে কিনা তা পরীক্ষা করুন: ``` ls -l /usr/local/bin/obsidian ``` যদি সিমলিংকটি অনুপস্থিত থাকে, তাহলে ম্যানুয়ালি এটি তৈরি করুন: ``` sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian-cli /usr/local/bin/obsidian ``` > [!note] যদি আপনি পূর্বে Obsidian-এর একটি পুরোনো সংস্করণ দিয়ে CLI নিবন্ধন করে থাকেন, তাহলে আপনার `~/.zprofile` এ একটি পুরোনো PATH এন্ট্রি থাকতে পারে। নতুন নিবন্ধন প্রক্রিয়া এটি স্বয়ংক্রিয়ভাবে সরিয়ে দেয়, তবে যদি এটি থেকে যায়, তাহলে আপনি নিরাপদে `~/.zprofile` থেকে `# Added by Obsidian` দিয়ে শুরু হওয়া লাইনগুলো মুছে ফেলতে পারেন। ### Linux CLI নিবন্ধন CLI বাইনারিটিকে `~/.local/bin/obsidian` এ কপি করে। এটি করা হয় কারণ কিছু Linux ইনস্টলেশন পদ্ধতি টেম্পোরারি ডিরেক্টরি থেকে চলে যা স্থায়ীভাবে সিমলিংক করা যায় না। নিশ্চিত করুন `~/.local/bin` আপনার PATH এ আছে। যদি না থাকে তাহলে আপনার `~/.bashrc` অথবা `~/.zshrc` এ নিম্নলিখিতটি যোগ করুন: ``` export PATH="$PATH:$HOME/.local/bin" ``` বাইনারিটি বিদ্যমান কিনা তা পরীক্ষা করুন: ``` ls -l ~/.local/bin/obsidian ``` যদি বাইনারিটি অনুপস্থিত থাকে, তাহলে Obsidian ইনস্টলেশন ডিরেক্টরি থেকে ম্যানুয়ালি এটি কপি করুন: ``` cp /path/to/Obsidian/obsidian-cli ~/.local/bin/obsidian chmod 755 ~/.local/bin/obsidian ```