GC-301i · Module 1
Shared Configurations
3 min read
A shared Gemini CLI configuration is the foundation of consistent AI-assisted development across a team. The configuration has three layers: GEMINI.md (project context and rules), .gemini/settings.json (MCP servers, tool permissions, model preferences), and .gemini/commands/ (team slash commands). All three are checked into version control and code-reviewed like any other codebase artifact. When a developer clones the repo and runs Gemini CLI, they inherit the entire team configuration automatically — no setup docs to follow, no manual config to copy.
The shared configuration must distinguish between project facts and team opinions. Facts go in the shared config: "this is a React 19 + TypeScript strict project," "run npm test before committing," "API routes follow REST conventions." Opinions stay in personal overrides: preferred model, response verbosity, code style preferences that go beyond the project linter. The litmus test: would a new hire need to know this on day one? If yes, it belongs in the shared config. If it is personal preference, it belongs in AGENTS.override.md or ~/.gemini/.
# Team Gemini CLI configuration structure
SHARED (checked into git, code-reviewed)
├── GEMINI.md → Project architecture, conventions, rules
├── .gemini/
│ ├── settings.json → MCP servers, tool config, model defaults
│ └── commands/
│ ├── review.toml → Standard code review workflow
│ ├── test-gen.toml → Test generation with project conventions
│ ├── deploy-check.toml → Pre-deployment validation
│ ├── commit-msg.toml → Commit message generation
│ └── onboard.toml → New developer onboarding guide
└── .geminiignore → Files excluded from context
PERSONAL (gitignored)
├── AGENTS.override.md → Personal rule overrides
└── ~/.gemini/
├── GEMINI.md → Global personal preferences
├── settings.json → Personal MCP servers, model prefs
└── commands/
└── my-workflow.toml → Personal productivity commands