Skip to content

Instantly share code, notes, and snippets.

@extratone
Created September 2, 2025 23:39
Show Gist options
  • Save extratone/0264db3e6d1baab5e2878c8a8d0e23f4 to your computer and use it in GitHub Desktop.
Save extratone/0264db3e6d1baab5e2878c8a8d0e23f4 to your computer and use it in GitHub Desktop.
Finally convinced gemini-cli to provide this half-assed example of the GEMINI.md file that is suggested *at every run*. As far as I can tell, this will now be the most thorough this feature has yet been publically documented.

Of course. Creating a GEMINI.md file in the root directory of your project is a powerful way to give me specific, project-level instructions and context.

When I start a session in a directory, I look for a GEMINI.md file. The content of this file helps me understand the project's conventions, goals, and constraints, allowing me to provide more accurate and relevant assistance.

What to put in GEMINI.md

You can include any information that would be helpful for a new developer joining your project. Here are some common examples:

  • Project Overview: A brief description of the project's purpose and goals.
  • Tech Stack: The programming languages, frameworks, and libraries used (e.g., "This is a React project using TypeScript and Tailwind CSS").
  • Coding Conventions: Rules for code style, formatting, and naming (e.g., "Use snake_case for Python variables," "All components must use functional syntax").
  • Important Commands: How to build, run, test, or lint the project (e.g., npm run test, go build ./..., ruff check .).
  • Directory Structure: An explanation of key directories and their purpose.
  • Dos and Don'ts: Specific instructions or rules to follow (e.g., "Do not use external libraries without approval," "Always add a unit test for new functions").

Example GEMINI.md

Based on your project "Hildur," a GEMINI.md file might look something like this:

# Project: Hildur Personal Knowledge Base

This is a personal knowledge management system, similar to a digital garden or Zettelkasten, built with Markdown files.

## Conventions

- **File Format:** All content is in plain Markdown.
- **File Naming:** Use descriptive, kebab-case names (e.g., `my-new-note.md`).
- **Linking:** Use relative Markdown links to connect notes.
- **Directory `.hildur/`:** This contains user-specific settings and state. Do not modify files in this directory unless asked.
- **Directory `annotation/`:** This contains web clippings. The `indexme.sh` script is used to process them.

## Important Commands

- There are no build or test commands. This is a collection of text files.
- To index new annotations, run: `bash annotation/indexme.sh`

## General Rules

- All modifications should be made to the Markdown files directly.
- Maintain the existing directory structure.
- When adding new notes, try to link them to existing, relevant notes.

By creating this file in /home/blue/Documents/Hildur/, you provide me with a rulebook for your project, ensuring my contributions align perfectly with your established workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment