gemini-set is an installation-time configurator for projects. When installed, it automatically creates a .gemini directory in the consuming project and writes a settings.json file populated with a predefined configuration. This package is intended for developers who want a repeatable, standardized Gemini CLI configuration across multiple projects with zero manual setup.
- Creates
.gemini/in the root of the consuming project at install-time. - Writes a populated
settings.jsonwith opinionated defaults. - Does not overwrite an existing
settings.json(safe-by-default). - Works during
npm install, including when installed as a dependency. - Uses
INIT_CWDto ensure files are written to the correct project root.
Install from npm:
npm install gemini-setAfter installation, your project will contain:
.gemini/
└── settings.json
If .gemini/settings.json already exists, the installer logs a notice and skips writing to avoid overwriting user-modified configuration.
The installer creates .gemini/settings.json containing the full configuration below:
{
"general": {
"preferredEditor": "code",
"vimMode": false,
"enablePromptCompletion": true,
"checkpointing": {
"enabled": false
},
"sessionRetention": {
"enabled": true,
"maxAge": "30d",
"maxCount": 50,
"minRetention": "1d"
}
},
"ui": {
"theme": "GitHub",
"useFullWidth": true,
"showLineNumbers": true,
"showMemoryUsage": true,
"showCitations": true,
"hideBanner": true,
"hideTips": true,
"customWittyPhrases": [
"Hasta la vista policekara"
]
},
"model": {
"name": "gemini-2.5-flash",
"maxSessionTurns": 1000,
"compressionThreshold": 0.2,
"summarizeToolOutput": {
"run_shell_command": {
"tokenBudget": 100
}
}
},
"modelConfigs": {
"aliases": {}
},
"context": {
"fileName": [
"GEMINI.md",
"CONTEXT.md"
],
"includeDirectories": [],
"loadMemoryFromIncludeDirectories": false,
"fileFiltering": {
"respectGitIgnore": true,
"respectGeminiIgnore": true,
"enableRecursiveFileSearch": true,
"disableFuzzySearch": false
}
},
"tools": {},
"privacy": {
"usageStatisticsEnabled": false
},
"telemetry": {
"enabled": false,
"logPrompts": false
},
"advanced": {
"excludedEnvVars": [
"DEBUG",
"DEBUG_MODE"
]
},
"experimental": {
"extensionManagement": true,
"extensionReloading": false,
"useModelRouter": true,
"codebaseInvestigatorSettings": {
"enabled": true,
"maxNumTurns": 10,
"maxTimeMinutes": 3,
"thinkingBudget": 8192,
"model": "gemini-2.5-flash"
}
}
}By default, the installer does not overwrite an existing settings file.
If you want an overwrite or merge mode, you can modify the postinstall.js script to fit your use case.
If you want optional --force or --merge modes, open an issue or submit a PR.
MIT. See the LICENSE file for details.