Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎀 Voice Driven Development with Kiro Autonomous Agents

Convert spoken requirements into structured specifications or GitHub issues using AI transcription and LLM processing.

Bandit Security Scan License: MIT-0 Python 3.12+

Speak your ideas, and this app turns them into actionable work. Record or upload audio, and the app transcribes your words and uses AI to generate structured requirements β€” or creates a GitHub issue that Kiro's Autonomous Agent picks up, implements, and delivers as a Pull Request. No typing required.

In Local mode, the generated specs drive Kiro IDE to implement the entire application through specs-driven development. In GitHub mode, Kiro's Autonomous Agent picks up the issue and raises a PR automatically.

πŸ€– Fun fact: This entire project was created using Kiro, an AI-powered development assistant that helped design, implement, and document the application from initial concept to deployment.


✨ Features

Feature Description
πŸŽ™οΈ Browser Recording Record requirements directly from your microphone
πŸ“ File Upload Upload .wav audio files
☁️ Amazon Transcribe Cloud-based speech-to-text
🦜 Parakeet MLX On-device transcription for Apple Silicon (optional)
πŸ“ Local Mode Generate requirements.md + tasks.md in Kiro spec format
πŸ™ GitHub Mode Create GitHub issues directly from voice input
πŸ€– Configurable Model Use any Bedrock model (Claude Haiku, Sonnet, etc.)

πŸ“‹ Prerequisites

  • uv package manager
  • Python 3.12+
  • AWS account with access to:
    • S3 β€” audio file storage
    • Amazon Transcribe β€” speech-to-text
    • Amazon Bedrock β€” LLM inference (Claude model access required)
  • AWS credentials configured (~/.aws/credentials or environment variables)

πŸš€ Quick Start

1. Clone & install

git clone https://github.com/aws-samples/sample-voice-driven-development.git
cd sample-voice-driven-development
uv sync

2. Configure environment

cp .env.example .env

Edit .env with your values:

S3_BUCKET_NAME=your-s3-bucket-name
BEDROCK_MODEL_ID=eu.anthropic.claude-haiku-4-5-20251001-v1:0

# Optional: GitHub issue creation mode
GITHUB_TOKEN=ghp_your_token_here
GITHUB_REPO=owner/repo

3. Run

uv run streamlit run streamlit_app.py

Open http://localhost:8501 in your browser.


🐳 Docker

With AWS credentials volume mount:

docker build -t voice-driven-dev .
docker run -p 8501:8501 \
  -e S3_BUCKET_NAME=your-bucket \
  -v ~/.aws:/home/appuser/.aws:ro \
  -v $(pwd)/projects:/app/projects \
  voice-driven-dev

With environment variables:

docker run -p 8501:8501 \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET_NAME=your-bucket \
  -v $(pwd)/projects:/app/projects \
  voice-driven-dev

🎯 Usage

  1. Choose input β€” Record audio via microphone or upload a .wav file
  2. Select output mode β€” Local (specs + tasks) or GitHub (issue creation)
  3. Process β€” Click the process button to transcribe and generate output
  4. Download β€” Get your requirements.md, tasks.md, or view the GitHub issue

Output Modes

Mode Output Requires
Local projects/<name>/requirements.md + tasks.md S3 bucket
GitHub GitHub issue with kiro label β€” triggers Kiro Autonomous Agent to pick up and implement the task GITHUB_TOKEN + GITHUB_REPO

🦜 Local Transcription (Optional)

For on-device transcription on Apple Silicon (skips S3 + Transcribe entirely):

brew install ffmpeg
uv sync --extra local-transcribe

Select Parakeet MLX in the sidebar transcription engine dropdown.


πŸ€– Kiro Autonomous Agent Mode (Optional)

Use Kiro's Autonomous Agent to close the loop entirely β€” speak your requirements, have them logged as GitHub issues, and let Kiro automatically pick them up, implement the code, and raise a Pull Request.

How it works

🎀 Voice Input ──▢ πŸ™ GitHub Issue ──▢ πŸ€– Kiro Agent ──▢ πŸ“¦ Pull Request
  1. You speak your requirements into the Streamlit app (GitHub mode)
  2. The app creates a GitHub issue with structured acceptance criteria
  3. Kiro Autonomous Agent detects the new issue and starts working on it
  4. Kiro implements the changes and opens a PR for your review

Setup

Step 1: Connect Kiro Autonomous Agent to your GitHub repo

Follow the Kiro Autonomous Agent docs to set up:

  1. Open Kiro and navigate to Autonomous Agent
  2. Connect your GitHub account and select the target repository
  3. Configure which issue labels Kiro should pick up (e.g., kiro)

Step 2: Generate a GitHub Personal Access Token

  1. Go to GitHub β†’ Settings β†’ Developer settings β†’ Personal access tokens
  2. Create a Fine-grained token scoped to your target repository with:
    • Issues: Read & Write
  3. Copy the token

Step 3: Configure the app for GitHub mode

Add the token and repo to your .env:

GITHUB_TOKEN=github_pat_xxxxxxxxxxxx
GITHUB_REPO=owner/repo

Step 4: Use the app in GitHub mode

  1. Run the app: uv run streamlit run streamlit_app.py
  2. In the sidebar, select πŸ™ GitHub β€” open issue directly
  3. Record or upload your audio requirements
  4. Click Process β€” a GitHub issue is created with the kiro label
  5. Kiro Autonomous Agent picks up the issue, implements the code, and opens a PR

πŸ’‘ Tip: The app automatically applies the kiro label to created issues. Make sure your Kiro Agent is configured to watch for this label so it triggers automatically.


πŸ—οΈ Architecture

flowchart LR
    A[🎀 Voice Input] --> B[πŸ—£οΈ Transcribe]
    B --> C[πŸ€– Bedrock Claude]
    C --> D[πŸ“ Local Specs β†’ Kiro IDE]
    C --> E[πŸ™ GitHub Issue β†’ Kiro Agent β†’ PR]
Loading

πŸ” AWS Permissions

Your IAM credentials need the following permissions:

Service Actions
S3 s3:PutObject, s3:GetObject on your bucket
Transcribe transcribe:StartTranscriptionJob, transcribe:GetTranscriptionJob
Bedrock bedrock:InvokeModel for your configured model

βš™οΈ Configuration Reference

Variable Required Default Description
S3_BUCKET_NAME Yes* β€” S3 bucket for audio storage
BEDROCK_MODEL_ID No eu.anthropic.claude-haiku-4-5-20251001-v1:0 Bedrock model ID
AWS_REGION No Auto-resolved from model prefix AWS region override
GITHUB_TOKEN No β€” Enables GitHub issue mode
GITHUB_REPO No β€” Target repo (owner/repo)
PARAKEET_MODEL_ID No mlx-community/parakeet-tdt-0.6b-v2 Local transcription model

* Not required when using Parakeet MLX engine in local-only mode.


πŸ“š Resources


🀝 Contributing

See CONTRIBUTING.md for guidelines.


πŸ”’ Security

See CONTRIBUTING.md for reporting vulnerabilities.


πŸ“„ License

This project is licensed under the MIT-0 License.

About

Convert spoken requirements into structured Kiro specifications using AI transcription and LLM processing. This Streamlit application captures audio input (microphone or file upload), transcribes it using Amazon Transcribe, and generates structured requirements documents using Amazon Bedrock Claude 3.5 Sonnet.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages