Preview
Open Original
ActionSync
Transform meeting transcriptions into Jira tickets automatically using Claude AI.
Features
- Meeting Mode: Paste a meeting transcript. Claude analyzes it, checks your GitLab repos for technical context, and creates Jira tickets with relevant files, components, acceptance criteria, and links to related issues.
- Ask Mode: Ask questions about your project in natural language. Claude searches across Jira tickets, past meetings, and your codebase to find answers.
- Work Mode: Point Claude at a Jira ticket. It clones the relevant repos, reads the ticket and codebase, and works on the implementation.
- GitLab Integration: Connect GitLab repositories to provide code context for ticket creation and AI work.
- Meeting History & Semantic Search: Store โฆ
ActionSync
Transform meeting transcriptions into Jira tickets automatically using Claude AI.
Features
- Meeting Mode: Paste a meeting transcript. Claude analyzes it, checks your GitLab repos for technical context, and creates Jira tickets with relevant files, components, acceptance criteria, and links to related issues.
- Ask Mode: Ask questions about your project in natural language. Claude searches across Jira tickets, past meetings, and your codebase to find answers.
- Work Mode: Point Claude at a Jira ticket. It clones the relevant repos, reads the ticket and codebase, and works on the implementation.
- GitLab Integration: Connect GitLab repositories to provide code context for ticket creation and AI work.
- Meeting History & Semantic Search: Store processed meetings with vector embeddings for intelligent search.
- Real-time Updates: WebSocket connection for live processing feedback.
- Per-Project Customization: Custom instructions, GitLab repos, and settings per project.
Architecture
Frontend (Vanilla JavaScript SPA)
โ
FastAPI Backend (Python/Async)
โ
PostgreSQL Database (with pgvector)
โ
Claude AI (via Azure Anthropic API)
โ
Jira REST API + GitLab API
- Backend: FastAPI with async SQLAlchemy (PostgreSQL/SQLite)
- Frontend: Vanilla JavaScript SPA with modern dark theme
- AI: Claude via Azure Anthropic with MCP tools for Jira operations
- Embeddings: Azure OpenAI for semantic search (optional)
- Auth: JWT tokens with bcrypt password hashing
Quick Start
Using Docker Compose (Recommended)
Copy the example environment file and configure it:
cp .env.example .env
# Edit .env with your values
Required variables:
POSTGRES_PASSWORD- Database passwordSECRET_KEY- JWT signing secretAZURE_ANTHROPIC_ENDPOINT- Azure Anthropic API endpointAZURE_ANTHROPIC_API_KEY- Azure Anthropic API key
Start the application:
docker-compose up -d
Access at http://localhost:8080
Manual Setup
Install Python dependencies:
cd backend
pip install -r requirements.txt
Set environment variables (see Environment Variables) 1.
Run the server:
python server.py
Configuration
Jira Setup
- Create an API token at https://id.atlassian.com/manage-profile/security/api-tokens
- In the app Settings, enter:
- Jira Base URL (e.g.,
https://yourcompany.atlassian.net) - Your Jira email
- The API token you created
GitLab Setup (Optional)
- Create a Personal Access Token in GitLab with
read_repositoryscope - In Settings, enter:
- GitLab URL (e.g.,
https://gitlab.com) - Personal Access Token
Adding Projects
In Settings, add Jira project keys (e.g., PROJ, DEV, SUPPORT) with optional configuration:
- GitLab Projects: Comma-separated repository paths to clone for code context
- Custom Instructions: Additional guidance for Claude when processing meetings
- Embeddings Enabled: Toggle meeting history storage for semantic search
Usage
Meeting Processing Mode
- Go to Dashboard and select "Meeting" mode
- Select a project
- Paste your meeting transcription
- Click "Process Meeting"
- Watch Claude analyze and create/update tickets in real-time
- View results with links to created tickets
Ask Mode
- Go to Dashboard and select "Ask" mode
- Select a project
- Ask a question about your project
- Claude searches Jira, meeting history, and code to provide answers
Work Mode
- Go to Dashboard and select "Work" mode
- Select a project
- Enter a Jira ticket key (e.g.,
PROJ-123) - Claude clones the configured GitLab repos, reads the ticket, and starts working
- Watch progress in real-time as Claude analyzes code and implements changes
Meeting History
- Go to History to view past processed meetings
- Use search to find meetings by content
- Click on a meeting to view details and summary
Environment Variables
| Variable | Required | Description |
|---|---|---|
SECRET_KEY | Yes | JWT signing secret (change in production) |
AZURE_ANTHROPIC_ENDPOINT | Yes | Azure Anthropic API endpoint |
AZURE_ANTHROPIC_API_KEY | Yes | Azure Anthropic API key |
AZURE_ANTHROPIC_MODEL | No | Claude model (default: claude-opus-4-5) |
DATABASE_URL | No | Database connection string (default: SQLite) |
AZURE_OPENAI_ENDPOINT | No | Azure OpenAI endpoint (for embeddings) |
AZURE_OPENAI_API_KEY | No | Azure OpenAI API key (for embeddings) |
AZURE_OPENAI_EMBEDDING_DEPLOYMENT | No | Embedding model (default: text-embedding-3-small) |
API Endpoints
Authentication
| Endpoint | Method | Description |
|---|---|---|
/api/auth/register | POST | Create account |
/api/auth/login | POST | Login (returns JWT) |
/api/auth/me | GET | Get current user |
Jira Configuration
| Endpoint | Method | Description |
|---|---|---|
/api/jira/config | GET | Get Jira config |
/api/jira/config | POST | Create Jira config |
/api/jira/config | PUT | Update Jira config |
Projects
| Endpoint | Method | Description |
|---|---|---|
/api/jira/projects | GET | List projects |
/api/jira/projects | POST | Add project |
/api/jira/projects/{id} | PUT | Update project settings |
/api/jira/projects/{id} | DELETE | Remove project |
Processing
| Endpoint | Method | Description |
|---|---|---|
/api/meetings/process | POST | Process meeting transcription |
/api/jira/ask | POST | Ask a question about the project |
/api/work/start | POST | Start working on a Jira ticket |
/api/processing/status | GET | Check processing status |
/api/processing/abort | POST | Cancel current processing |
Meeting History
| Endpoint | Method | Description |
|---|---|---|
/api/meetings | GET | List meetings (paginated) |
/api/meetings/{id} | GET | Get meeting details |
/api/meetings/{id} | DELETE | Delete meeting |
/api/meetings/search | POST | Semantic search across meetings |
Real-time
| Endpoint | Type | Description |
|---|---|---|
/ws?token={jwt} | WebSocket | Real-time processing updates |
Deployment
Docker
docker build -t actionsync .
docker run -p 8080:8080 --env-file .env actionsync
Tech Stack
- Python 3.12 with FastAPI
- PostgreSQL 16 with pgvector extension
- Claude AI via Azure Anthropic
- Azure OpenAI for embeddings
- Vanilla JavaScript SPA frontend
- Docker deployment support