Google Π²ΡΠΊΠ°ΡΠΈΠ»Π° Gemini CLI β open-source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΡΠ΄ΠΈΠ» Π²Π°Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΠ-ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠΌ! π»β‘ Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ:
β’ ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ β’ ΠΡΠΊΠ°ΡΡ Π±Π°Π³ΠΈ β’ ΠΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ β’ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Ρ
Π€ΠΈΡΠΊΠ°: ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Gemini Pro 2.5, Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΈΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ. π€ ΠΠ΅ Π½ΡΠΆΠ½ΠΎ API-ΠΊΠ»ΡΡΠ΅ΠΉ β ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²ΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΡ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² β ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ: DevOps, ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠ² ΠΈ Π²ΡΠ΅Ρ , ΠΊΡΠΎ ΠΆΠΈΠ²Π΅Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π’Π΅ΡΡΠΈΡΡΠΉΡΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠΈΡΠ΅. Π‘Π’ΠΠΠ¬ ΠΈ ΠΊΠ°ΠΉΡΡΠΉ! π
#GeminiCLI #Google #AI
ΠΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π·ΡΠΌΠ΅
Google Π²ΡΠΏΡΡΡΠΈΠ»Π° Gemini CLI β Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ open-source Π°Π³Π΅Π½Ρ ΠΠ Π΄Π»Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Gemini 2.5 Pro. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡΡΠΌΡΡ Π² CLI, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Model Context Protocol (MCP) ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· GEMINI.md ΡΠ°ΠΉΠ»Ρ. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ: ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Vertex AI/AI Studio, ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ, Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΠ°ΡΠΈΡ (60 RPM/1000 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π΄Π΅Π½Ρ) ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ workflow Π΄Π»Ρ security-sensitive ΡΡΠ΅Π΄. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ Π½ΠΎΠ²ΠΈΠ·Π½Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ LLM-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π±Π΅Π· IDE-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ (H2)
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° (H3) Gemini CLI ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΊΠ°ΠΊ Go-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° GitHub) ΡΠΎ ΡΠ»ΠΎΠΈΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ:
- Terminal Gateway: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° shell-ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ΅ΡΠ΅Π· POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ
- MCP Parser: ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ Model Context Protocol Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ
- Gemini API Gateway: ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ RESTful API Gemini 2.5 Pro (ΡΠ΅ΠΊΡΡ) ΠΈ Gemini 1.5 Flash (ΠΌΡΠ»ΡΡΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΡ)
- Security Sandbox: ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ GEMINI.md (H3)
# AGENT CONFIG
model: gemini-2.5-pro-preview-0409
temperature: 0.2
max_tokens: 2048
safety_settings:
harassment: BLOCK_MEDIUM_AND_ABOVE
hate_speech: BLOCK_ONLY_HIGH
tools:
- name: code_interpreter
allow_files: [.py, .js, .ts]
- name: git_integration
allowed_commands: [commit, push, pull]ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ (H2)
DevOps-Π²ΠΎΡΠΊΡΠ»ΠΎΡ (H3) ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² CI/CD ΡΠ΅ΡΠ΅Π· GitHub Actions:
name: AI Code Review
on: [pull_request]
jobs:
gemini-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Gemini CLI Review
run: |
curl -LO https://github.com/google/gemini-cli/releases/latest/download/gemini-cli-linux-amd64
chmod +x gemini-cli-linux-amd64
./gemini-cli-linux-amd64 review --diff HEAD~1 --prompt "Analyze security flaws"ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ trade-offs (H3)
- β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°: ΠΡΠ»Π΅Π²ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ attack surface, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ legacy CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
- β οΈ ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ: ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π±Π°Π³Π³Π΅ΡΠ°, Π»ΠΈΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (128K ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π² Gemini 2.5 Pro), Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΠΌΡΠ»ΡΡΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ (H2)
| Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ latency (ΠΌΡ) (H3) | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Gemini CLI (Local) | VS Code Extension | Cloud API |
|---|---|---|---|---|
| ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° | 1200 Β± 200 | 1800 Β± 300 | 2500 Β± 400 | |
| ΠΠ½Π°Π»ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ | 800 Β± 150 | 1100 Β± 250 | 1700 Β± 300 | |
| ΠΡΠ»ΡΡΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ | 3500 Β± 500 | N/A | 4200 Β± 600 |
Π Π΅ΡΡΡΡΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ (H3)
- ΠΠ°ΠΌΡΡΡ: ~250MB RAM Π² idle, ΠΏΠΈΠΊΠΈ Π΄ΠΎ 1.2GB ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ diff
- CPU: 5-15% Π½Π° Intel Core i7-1280P ΠΏΡΠΈ ΡΠΈΠΏΠΈΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅
Enterprise use cases (H2)
Security-first ΡΡΠ΅Π΄Ρ (H3)
- ΠΡΠ΄ΠΈΡ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ (offline-ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ)
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ HashiCorp Vault Π΄Π»Ρ ΡΠΎΡΠ°ΡΠΈΠΈ API-ΠΊΠ»ΡΡΠ΅ΠΉ
- ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· gVisor Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
Legacy-ΡΠΈΡΡΠ΅ΠΌΡ (H3) ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΠΈ COBOL-ΠΊΠΎΠ΄Π°:
gemini-cli transform --file legacy.cbl --target-language java --prompt "Migrate to Spring Boot"
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ (H2)
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ (H3)
- ΠΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² long-running ΡΠ΅ΡΡΠΈΡΡ
- ΠΡΠΈΠ±ΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ°Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (tool calling) ΠΏΡΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ
- Π ΠΈΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΊΡΠΏΠ΅ΡΡΠ½ΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ (H3)
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ephemeral ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Prometheus/Grafana Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°:
metrics: enable: true port: 9095 labels: env: production
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄ΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ: ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ WebGPU Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° LSP-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ Terraform. ΠΠ»Ρ Senior-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°ΠΊΡΠΈΠ²ΠΎΠΌ ΠΏΡΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠΈ security best practices. ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ Π²ΡΠ±ΠΎΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² security-sensitive ΡΡΠ΅Π΄Π°Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ IDE-ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· Gemini Code Assist.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ²ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
gemini-cli refactor --file service.js --prompt "Convert callback hell to async/await"
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ Dockerfile
gemini-cli generate --template docker --params "python=3.11,enable_gpu=true"