ganjinehگنجینه
GitHub

a shared notebook for your team's AI helpersیک دفترچهٔ مشترک برای دستیارهای هوش مصنوعیِ تیم · v0.1.2

Your team's AI helpers finally share one notebook.دستیارهای هوش مصنوعیِ تیمتان بالاخره یک دفترچهٔ مشترک دارند.

When one person's AI finishes a job, ganjineh writes a short note about it in a notebook your whole team shares. The next person's AI reads that note first, so it does not start from zero.وقتی هوش مصنوعیِ یک نفر کارش را تمام می‌کند، گنجینه یادداشت کوتاهی از آن در دفترچه‌ای می‌نویسد که کل تیم شریک است. هوش مصنوعیِ نفر بعدی اول همان یادداشت را می‌خواند و از صفر شروع نمی‌کند.

Think of a whiteboard in a shared kitchen: whoever cooks leaves a note, so nobody cooks the same dish twice.مثل تختهٔ آشپزخانهٔ مشترک: هر کس آشپزی کند یک یادداشت می‌گذارد تا هیچ‌کس یک غذا را دوبار نپزد.

Example: Alice's AI builds the login button. Later, Bob's AI is asked for the login part of the server. It finds Alice's note and reuses her plan instead of inventing a new one. No server, no account, no extra AI calls.مثال: هوش مصنوعیِ آلیس دکمهٔ ورود را می‌سازد. بعد از هوش مصنوعیِ باب بخش ورودِ سرور خواسته می‌شود. او یادداشت آلیس را پیدا می‌کند و به‌جای ساختن یک طرح تازه، از همان استفاده می‌کند. بدون سرور، بدون حساب، بدون فراخوانی اضافهٔ AI.

  • Free · MITرایگان · MIT
  • no serverبدون سرور
  • no accountبدون حساب
  • no extra AI callsبدون فراخوانی اضافهٔ AI
  • 100 tests۱۰۰ تست
  • Python 3.9+
GANJINEH · VAULT alice@laptop — claude bob@desktop — codex
Decoration only: Alice's notes flow through the vault to Bob.فقط تزئینی: یادداشت‌های آلیس از گنجینه به باب می‌رسد.
  1. 01

    Saveذخیره

    When an AI session ends, ganjineh reads it by itself. You type nothing.وقتی کار یک دستیار تمام می‌شود، گنجینه خودش آن را می‌خواند. شما چیزی تایپ نمی‌کنید.

  2. 02

    Hide secretsپنهان‌کردن رازها

    Passwords and keys are blacked out before anything is saved.رمزها و کلیدها پیش از هر ذخیره‌ای سیاه می‌شوند.

  3. 03

    Shareاشتراک

    Each note is a small text file. Git, the tool programmers already use to share files, carries it to everyone.هر یادداشت یک فایل متنی کوچک است. گیت، ابزاری که برنامه‌نویس‌ها برای اشتراک فایل دارند، آن را به همه می‌رساند.

  4. 04

    Rememberبه یاد آوردن

    Before the next AI starts, it looks through the notebook and reads what teammates already did.پیش از شروع AI بعدی، دفترچه را می‌گردد و می‌خواند هم‌تیمی‌ها قبلاً چه کرده‌اند.

Words in plain Englishواژه‌ها به زبان ساده

AI helperدستیار هوش مصنوعی
A program like Claude Code, Codex, Gemini, Cursor or Copilot that writes code when you ask.برنامه‌ای مثل Claude Code، Codex، Gemini، Cursor یا Copilot که وقتی بخواهید کد می‌نویسد.
Noteیادداشت
A short summary of one work session: what was asked, what was done, which files changed.خلاصهٔ کوتاه یک جلسه کار: چه خواسته شد، چه شد، کدام فایل‌ها عوض شد.
Notebook (git repo)دفترچه (مخزن گیت)
A shared folder that remembers every change and who made it. Programmers call this “git”. GitHub and GitLab host them.پوشه‌ای مشترک که هر تغییر و تغییردهنده را به یاد می‌آورد. برنامه‌نویس‌ها به آن «گیت» می‌گویند. GitHub و GitLab میزبان آن هستند.
Hookهوک
A small automatic step: “when this happens, run that”. Here: “when the AI finishes, save a note”.یک گام خودکار کوچک: «وقتی این شد، آن را اجرا کن». اینجا: «وقتی AI تمام کرد، یادداشت را ذخیره کن».
MCPMCP
A standard plug that lets an AI app use extra tools. Here it lets the AI search the notebook by itself.یک دوشاخهٔ استاندارد که به برنامهٔ AI اجازه می‌دهد از ابزارهای اضافه استفاده کند. اینجا به AI اجازه می‌دهد خودش در دفترچه جست‌وجو کند.
Hiding secrets (“scrub”)پنهان‌کردن رازها
Passwords and keys are replaced by [REDACTED] before anything is saved.رمزها و کلیدها پیش از هر ذخیره‌ای با [REDACTED] جایگزین می‌شوند.
Summary at start (“briefing”)خلاصهٔ شروع
A few lines of recent team notes handed to the AI when it starts.چند خط از یادداشت‌های تازهٔ تیم که هنگام شروع به AI داده می‌شود.

Try itامتحان کنید

Two people. One shared notebook.دو نفر. یک دفترچهٔ مشترک.

Press “Play the story”, or type commands yourself. Left: Alice’s AI. Right: Bob’s AI. When Alice finishes, her note lands in the notebook, and Bob’s AI reads it. Hiding secrets, writing the note and searching are the real tool’s code running in your browser.دکمهٔ «اجرای داستان» را بزنید یا خودتان دستور بنویسید. چپ: هوش مصنوعیِ آلیس. راست: هوش مصنوعیِ باب. وقتی آلیس تمام می‌کند، یادداشتش در دفترچه می‌نشیند و AI باب آن را می‌خواند. پنهان‌کردن رازها، نوشتن یادداشت و جست‌وجو همان کد واقعی ابزار است که در مرورگر شما اجرا می‌شود.

This is a simulation in your browser.این یک شبیه‌سازی در مرورگر شماست. The AI’s replies and the look of the terminals (the black text windows programmers type in) are pre-written. No AI runs and nothing goes online. The memory part (hiding secrets, writing notes, searching) is the real tool’s logic, rewritten in JavaScript and checked against the original on 77 test cases.پاسخ‌های AI و ظاهر ترمینال‌ها (همان پنجره‌های متنیِ سیاهی که برنامه‌نویس‌ها در آن تایپ می‌کنند) از پیش نوشته شده‌اند. هیچ AI اجرا نمی‌شود و چیزی به اینترنت نمی‌رود. بخش حافظه (پنهان‌کردن رازها، نوشتن یادداشت، جست‌وجو) منطق واقعی ابزار است که به جاوااسکریپت بازنویسی و روی ۷۷ مورد آزمایشی با نسخهٔ اصلی مقایسه شده.

  1. Alice opens her AI helperآلیس دستیار هوش مصنوعی‌اش را باز می‌کند
  2. Alice asks for a login button (and pastes a fake secret key)آلیس دکمهٔ ورود می‌خواهد (و یک کلید رمز ساختگی می‌چسباند)
  3. Alice finishes: a short note is written, the key is blacked outآلیس کارش را تمام می‌کند: یادداشت کوتاهی نوشته می‌شود و کلید پوشانده می‌شود
  4. Alice shares the note with the team notebookآلیس یادداشت را در دفترچهٔ تیم می‌گذارد
  5. Bob updates his copy of the notebookباب نسخهٔ خودش از دفترچه را به‌روز می‌کند
  6. Bob opens his AI helperباب دستیارش را باز می‌کند
  7. Bob asks for the login part of the serverباب بخش ورودِ سرور را می‌خواهد
alice@laptop — claude · frontendClaude Code · Alice (frontend)
bob@desktop — codex · backendCodex · Bob (backend)

The shared notebookدفترچهٔ مشترک

git@github.com:acme/team-brain.git · main · 4 notesیادداشت

Historyتاریخچه (click a changeروی یک تغییر بزنید)

    filesفایل‌ها

      —

      What the AI can ask the notebook (MCP)آنچه AI می‌تواند از دفترچه بپرسد (MCP)

      search_memory · read_entry · add_note · who_knows_about · recent

      MCP is a standard plug that lets an AI app use extra tools. Pick who is asking and which tool to call.MCP یک دوشاخهٔ استاندارد است که به برنامهٔ AI اجازه می‌دهد از ابزارهای اضافه استفاده کند. انتخاب کنید چه کسی می‌پرسد و کدام ابزار صدا زده شود.

      The code-style buttons are real commands. capture writes the note, sync shares it with the team, search looks something up, who-knows shows who worked on a topic.دکمه‌های کدنما فرمان‌های واقعی‌اند. capture یادداشت را می‌نویسد، sync آن را با تیم به اشتراک می‌گذارد، search چیزی را پیدا می‌کند، who-knows نشان می‌دهد چه کسی روی یک موضوع کار کرده.

      Bob's AI, with and without the notebookهوش مصنوعیِ باب، با دفترچه و بدون آن

      Run Bob once with ganjineh off and once on (Alice must share her note first). The web address Bob's code ends up with comes from the real search; the AI's wording is pre-written.باب را یک بار با گنجینهٔ خاموش و یک بار روشن اجرا کنید (آلیس باید اول یادداشتش را به اشتراک بگذارد). نشانی‌ای که کد باب می‌گیرد از جست‌وجوی واقعی می‌آید؛ جمله‌های AI از پیش نوشته شده‌اند.

      Without ganjinehبدون گنجینه

      —

      With ganjinehبا گنجینه

      —

      Set upراه‌اندازی

      Pick your AI tools. Copy the exact commands.ابزارهای AI خود را انتخاب کنید. دستورهای دقیق را کپی کنید.

      Tick what your team uses. We show the commands to run and the files they create. They are built from the real tool’s options.آنچه تیمتان استفاده می‌کند را تیک بزنید. دستورهایی که باید اجرا شود و فایل‌هایی که ساخته می‌شود را نشان می‌دهیم. این‌ها از گزینه‌های واقعی ابزار ساخته می‌شوند.

      Your AI toolsابزارهای هوش مصنوعی شما
      Team sizeاندازهٔ تیم
      Optionsگزینه‌ها

      First person on the team (once)اولین نفر تیم (یک بار)

      Everyone elseبقیهٔ تیم

      Files it createsفایل‌هایی که می‌سازد

        Persianفارسی

        Different ways of typing a Persian word still find each other.چند شکلِ تایپ یک واژهٔ فارسی باز هم یکدیگر را پیدا می‌کنند.

        Some keyboards type Arabic-style letters (ي ك) or hide invisible half-spaces inside words. ganjineh makes them the same before searching. Below is the real search code, run on a Persian note from the demo notebook.بعضی کیبوردها حرف‌های عربی (ي ك) می‌نویسند یا نیم‌فاصلهٔ نامرئی وسط واژه می‌گذارند. گنجینه پیش از جست‌وجو همه را یکدست می‌کند. پایین، کد واقعی جست‌وجو روی یک یادداشت فارسی از دفترچهٔ نمایشی اجرا می‌شود.

        What you typed (hidden characters shown)آنچه نوشتید (نویسه‌های پنهان نمایان)
        Cleaned upیکدست‌شده
        Words it searches forواژه‌هایی که جست‌وجو می‌شود

        Privacyحریم خصوصی

        You decide what is never saved.شما تعیین می‌کنید چه چیزی هرگز ذخیره نشود.

        Write #private in a question, or list files to ignore. Flip a switch and watch the note change. This runs the real note-writing code on one fixed session of Alice’s.در یک پرسش #private بنویسید یا فایل‌هایی را برای نادیده‌گرفتن فهرست کنید. یک کلید را بزنید و تغییر یادداشت را ببینید. این کار، کد واقعی نوشتن یادداشت را روی یک جلسهٔ ثابت آلیس اجرا می‌کند.

        The ignore listفهرست نادیده‌گرفتن .ganjinehignore

        Files Alice’s AI touchedفایل‌هایی که AI آلیس به آن‌ها دست زد

          The note that gets savedیادداشتی که ذخیره می‌شود

          Secret-hiding testآزمایش پنهان‌کردن رازها

          Paste anything (fake values only). The result comes from the real secret-hiding code.هر چیزی بچسبانید (فقط مقدارهای ساختگی). نتیجه از کد واقعی پنهان‌کردن رازها می‌آید.

          Honest limitsصداقت و محدودیت‌ها

          What was really tested, and what was not.چه چیزی واقعاً آزموده شده و چه چیزی نه.

          No live AI with a real, paid key was run. The real command-line apps were run against pretend (“mock”) servers. That proves the plumbing works: the automatic steps run, files are written and the notes reach the AI’s request. It does not prove how well a real AI uses them.هیچ AI زنده‌ای با کلید واقعیِ پولی اجرا نشده. برنامه‌های خط‌فرمانِ واقعی روی سرورهای ساختگی («mock») اجرا شدند. این ثابت می‌کند لوله‌کشی کار می‌کند: گام‌های خودکار اجرا می‌شوند، فایل‌ها نوشته می‌شوند و یادداشت‌ها به درخواست AI می‌رسند. ثابت نمی‌کند یک AI واقعی چقدر از آن‌ها استفاده می‌کند.

          Details: docs/VERIFICATION.mdجزئیات: docs/VERIFICATION.md

          ToolابزارHow notes are savedذخیرهٔ یادداشت‌هاHow notes are readخواندن یادداشت‌هاHow far it was testedتا کجا آزموده شده
          Claude CodeAutomatic. Five small automatic steps (called “hooks”) in .claude/settings.json save a note when you finish.خودکار. پنج گام خودکارِ کوچک (به نام «هوک») در .claude/settings.json وقتی کار تمام شود یادداشت را ذخیره می‌کنند.A short summary when you start, matching notes added to each question, and a search tool (MCP).خلاصهٔ کوتاه هنگام شروع، افزودن یادداشت‌های مرتبط به هر پرسش، و یک ابزار جست‌وجو (MCP).real app + pretend serverبرنامهٔ واقعی + سرور ساختگی 2.1.197
          CodexAutomatic. Codex says “I’m done”, then ganjineh reads Codex’s own session file.خودکار. Codex اعلام می‌کند «تمام شد» و گنجینه فایل نشست خود Codex را می‌خواند.A search tool (MCP) plus a rules file (AGENTS.md). Codex has no “session start” step, so no start-up summary.یک ابزار جست‌وجو (MCP) به‌علاوهٔ فایل قواعد (AGENTS.md). Codex گام «شروع نشست» ندارد، پس خلاصهٔ شروع هم ندارد.real app + pretend serverبرنامهٔ واقعی + سرور ساختگی 0.164.0
          Gemini CLIBy hand: run ganjineh capture --format gemini. It guesses the file format and was not tested.دستی: ganjineh capture --format gemini را اجرا کنید. قالب فایل را حدس می‌زند و آزموده نشده.A search tool (MCP) plus GEMINI.md.یک ابزار جست‌وجو (MCP) به‌علاوهٔ GEMINI.md.the search tool connects on the real app; saving is untestedابزار جست‌وجو روی برنامهٔ واقعی وصل می‌شود؛ ذخیره آزموده نشده 0.65.0
          CursorBy hand (ganjineh note) or when the AI calls add_note.دستی (ganjineh note) یا وقتی AI ابزار add_note را صدا بزند..cursor/mcp.json plus a rules file..cursor/mcp.json به‌علاوهٔ یک فایل قواعد.config files only, never launchedفقط فایل‌های تنظیم، هرگز اجرا نشده
          Copilot (VS Code)By hand (ganjineh note).دستی (ganjineh note)..vscode/mcp.json plus an instructions file..vscode/mcp.json به‌علاوهٔ یک فایل دستورالعمل.config files only, never launchedفقط فایل‌های تنظیم، هرگز اجرا نشده
          Any other MCP appهر برنامهٔ دیگر با MCPThe AI calls add_note.AI ابزار add_note را صدا می‌زند.search_memory, read_entry, who_knows_about, recentsearch_memory، read_entry، who_knows_about، recentunit tests onlyفقط تست واحد

          Also: 100 tests, and a 9-step end-to-end script that runs the real apps against pretend servers. Last run: everything passed (Linux only).همچنین: ۱۰۰ تست و یک اسکریپت سرتاسری با ۹ گام که برنامه‌های واقعی را روی سرورهای ساختگی اجرا می‌کند. آخرین اجرا: همه موفق (فقط لینوکس).

          What it does not doکارهایی که نمی‌کند

          • The summary copies; it does not understand. Some notes will be messy. Read one with ganjineh show <id> before you trust it.خلاصه‌ساز فقط برمی‌دارد؛ نمی‌فهمد. بعضی یادداشت‌ها شلوغ خواهند بود. پیش از اعتماد، یکی را با ganjineh show <id> بخوانید.
          • Search matches words, not meaning. Two words that mean the same but share no letters will not match, and a Persian search will not find an English-only note.جست‌وجو واژه‌ها را تطبیق می‌دهد، نه معنی را. دو واژهٔ هم‌معنی که حرف مشترک ندارند پیدا نمی‌شوند و جست‌وجوی فارسی یادداشتِ فقط‌انگلیسی را پیدا نمی‌کند.
          • With only a few notes, it can bring up the wrong ones. Common words like “add” score high. Try ganjineh search add in a terminal above: it pulls in unrelated notes.وقتی یادداشت کم است، ممکن است یادداشت اشتباه بیاورد. واژه‌های رایجی مثل «add» امتیاز بالا می‌گیرند. در یکی از ترمینال‌های بالا ganjineh search add را امتحان کنید: یادداشت‌های نامرتبط می‌آورد.
          • Whatever a teammate types, the team can see. Hiding secrets is a best effort, not a guarantee.هر چه هم‌تیمی تایپ کند، تیم می‌تواند ببیند. پنهان‌کردن رازها تلاشِ حداکثری است، نه تضمین.
          • Not tested at all: a live AI with a real paid key, Windows, macOS, a real GitHub server (only a local test copy), big teams, Gemini’s real chat files, and how Cursor and Copilot behave.اصلاً آزموده نشده: یک AI زنده با کلید واقعیِ پولی، ویندوز، مک، سرور واقعی گیت‌هاب (فقط یک نسخهٔ آزمایشیِ محلی)، تیم‌های بزرگ، فایل‌های واقعی گفتگوی Gemini، و رفتار Cursor و Copilot.
          • It is not “for every AI”. Only the tools in the table above were checked, and only as the table says.برای «همهٔ AIها» نیست. فقط ابزارهای جدول بالا و فقط به همان اندازه که جدول می‌گوید بررسی شده‌اند.
          • No automatic test service (CI) yet: the token used to publish had no permission for it, so there is no workflow file. Run the tests yourself: PYTHONPATH=src pytest tests.هنوز سرویس خودکار تست (CI) نیست: توکنِ انتشار اجازهٔ آن را نداشت، پس فایل workflow وجود ندارد. تست‌ها را خودتان اجرا کنید: PYTHONPATH=src pytest tests.
          • A young project (v0.1.2), not on PyPI. Expect rough edges and changes before 1.0.پروژهٔ تازه (v0.1.2) و در PyPI نیست. تا پیش از ۱٫۰ انتظار لبه‌های خشن و تغییر داشته باشید.

          Where it sits among similar projectsجایگاه در میان پروژه‌های مشابه

          Other projects do similar things, and several are good: gitmem (the closest: team memory synced through git), team-memory, ai-memory, TeamBrain, Krimto, Knowit, CrewMemory, Commonwealth, claude-mem-sync, iHow Memory and mex. If one fits you better, use it. ganjineh bets on this mix: notes are saved by themselves, summaries need no AI, secrets are always hidden, notes are plain text files in git, search runs on your own computer, nothing extra to install, and Persian is handled properly. It deliberately has no meaning-based search, no web dashboard, no hosted sync and no AI-written summaries. NOVELTY.md has the details.پروژه‌های دیگری کار مشابهی می‌کنند و چندتایشان خوب‌اند: gitmem (نزدیک‌ترین: حافظهٔ تیمی همگام با گیت)، team-memory، ai-memory، TeamBrain، Krimto، Knowit، CrewMemory، Commonwealth، claude-mem-sync، iHow Memory و mex. اگر یکی برایتان بهتر است، همان را بردارید. گنجینه روی این ترکیب شرط می‌بندد: یادداشت‌ها خودکار ذخیره می‌شوند، خلاصه‌سازی به AI نیاز ندارد، رازها همیشه پنهان می‌شوند، یادداشت‌ها فایل متنیِ ساده در گیت‌اند، جست‌وجو روی کامپیوتر خودتان انجام می‌شود، چیز اضافه‌ای نصب نمی‌شود و فارسی درست پشتیبانی می‌شود. عمداً جست‌وجوی معنایی، داشبورد وب، همگام‌سازی میزبانی‌شده و خلاصهٔ نوشته‌شده با AI ندارد. جزئیات در NOVELTY.md.

          Installنصب

          Two steps per teammate.دو گام برای هر هم‌تیمی.

          You need Python 3.9 or newer. Nothing else to install. It is not on PyPI yet, so install it straight from GitHub (pipx is a small tool that installs Python programs):پایتون ۳٫۹ یا بالاتر لازم است و چیز دیگری نصب نمی‌شود. هنوز در PyPI نیست، پس مستقیم از گیت‌هاب نصبش کنید (pipx ابزار کوچکی برای نصب برنامه‌های پایتون است):

          pipx install git+https://github.com/mrzroot/ganjineh
          ganjineh --help

          First person on the teamاولین نفر تیم: create an empty private repository (any git host) to be your team’s notebook. Then, inside your project folder:یک مخزن خصوصیِ خالی (در هر میزبان گیت) بسازد تا دفترچهٔ تیم باشد. بعد داخل پوشهٔ پروژه:

          ganjineh init --brain git@github.com:your-team/team-brain.git --area backend
          git add .ganjineh.json CLAUDE.md AGENTS.md GEMINI.md .github .cursor .mcp.json .gemini .vscode .claude/settings.json
          git commit -m "Add ganjineh" && git push

          Everyone elseبقیه: pull that change and run one command with your own role (add --codex to set up Codex, which is set per user):آن تغییر را بکشند و با نقش خودشان یک دستور اجرا کنند (برای Codex، که برای هر کاربر جدا تنظیم می‌شود، --codex را اضافه کنند):

          ganjineh init --area frontend
          ganjineh search "refund screen"
          ganjineh who server/routes/auth.py