# niteshksah/gemini-autonomous-coding-agent architecture

> Architecture diagram of the GitHub repository niteshksah/gemini-autonomous-coding-agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/niteshksah/gemini-autonomous-coding-agent
- Repository: https://github.com/niteshksah/gemini-autonomous-coding-agent

## Overview

This repository is a command-line Gemini coding agent. A user submits a task; the agent sends it to Gemini with workspace, terminal, and browser tools, then prints Gemini’s response. The README also describes file management, code generation, debugging, and Python/Verilog work. The tool wiring is visible in `simple_agt.py`; the Verilog files appear in the tree, but their contents and any runtime connection to the agent were not sampled.

Main entry points: [`simple_agt.py`](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py) (Coding agent)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Agent interaction"]
  node_agent["Coding agent<br/>[simple_agt.py]"]
end

subgraph group_tools["Agent tools"]
  node_filetools["Workspace tools<br/>[simple_agt.py]"]
  node_terminal["Terminal runner<br/>[simple_agt.py]"]
  node_browser["Web browser<br/>[simple_agt.py]"]
  node_workspace["Project workspace"]
end

subgraph group_artifacts["RTL artifacts"]
  node_alu["ALU RTL<br/>[alu.v]"]
  node_memory["Memory RTL<br/>[mem_rtl.v]"]
  node_testbench["ALU testbench<br/>[alu_tb.v]"]
end

subgraph group_external["External services"]
  node_gemini["Gemini chat"]
  node_web["Web pages"]
end

node_user(("User"))

node_user -->|"submits task"| node_agent
node_agent -->|"sends message"| node_gemini
node_agent -->|"registers tools"| node_filetools
node_agent -->|"registers tool"| node_terminal
node_agent -->|"registers tool"| node_browser
node_filetools -->|"reads and writes"| node_workspace
node_terminal -->|"runs commands in"| node_workspace
node_browser -->|"retrieves page text"| node_web
node_gemini -.->|"invokes tools"| node_filetools
node_gemini -.->|"invokes tool"| node_terminal
node_gemini -.->|"invokes tool"| node_browser

click node_agent "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py"
click node_filetools "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py"
click node_terminal "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py"
click node_browser "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py"
click node_alu "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/alu.v"
click node_memory "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/mem_rtl.v"
click node_testbench "https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/alu_tb.v"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_agent,node_user toneBlue
class node_filetools,node_terminal,node_browser,node_workspace toneAmber
class node_alu,node_memory,node_testbench toneMint
class node_gemini,node_web toneRose
```

## Components

### Agent interaction

- [Coding agent](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py): `simple_agt.py`

### Agent tools

- [Workspace tools](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py): `simple_agt.py`
- [Terminal runner](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py): `simple_agt.py`
- [Web browser](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/simple_agt.py): `simple_agt.py`
- **Project workspace**

### RTL artifacts

- [ALU RTL](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/alu.v): `alu.v`
- [Memory RTL](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/mem_rtl.v): `mem_rtl.v`
- [ALU testbench](https://github.com/niteshksah/gemini-autonomous-coding-agent/blob/main/alu_tb.v): `alu_tb.v`

### External services

- **Gemini chat**
- **Web pages**

### Other components

- **User**

## Connections

- User → Coding agent: submits task (evidence: `simple_agt.py`)
- Coding agent → Gemini chat: sends message (evidence: `simple_agt.py`)
- Coding agent → Workspace tools: registers tools (evidence: `simple_agt.py`)
- Coding agent → Terminal runner: registers tool (evidence: `simple_agt.py`)
- Coding agent → Web browser: registers tool (evidence: `simple_agt.py`)
- Workspace tools → Project workspace: reads and writes (evidence: `simple_agt.py`)
- Terminal runner → Project workspace: runs commands in (evidence: `simple_agt.py`)
- Web browser → Web pages: retrieves page text (evidence: `simple_agt.py`)
- Gemini chat → Workspace tools: invokes tools
- Gemini chat → Terminal runner: invokes tool
- Gemini chat → Web browser: invokes tool
