Quix is an AI-powered Slack agent that can interact with your business tools such as JIRA, GitHub, HubSpot and more. It allows users to interact with these services directly from Slack channels or through 1:1 chats.
- Repository and code management
- Project and issue tracking
- CRM and marketing
- Database queries
- Workspace docs and knowledge management
- Identity and access management
- CRM and sales automation
- Messaging and collaboration
- AI-Powered Interactions: Leverages OpenAI for intelligent responses
- Slack Integration: Natural language interactions through Slack channels and DMs
- Multi-Service Integration: Seamlessly connects with multiple business tools
- Modular Architecture: Built on Nest.js with a scalable monorepo structure
βββ src/ # Main Nest.js application
β βββ lib/ # Core libraries
β βββ llm/ # LLM integration
β βββ integrations/ # Service integrations
β βββ slack/ # Slack bot functionality
β βββ database/ # Database configurations
β
βββ agent-packages/ # Integration packages
β βββ packages/
β βββ common/ # Shared utilities and types
β βββ github/ # GitHub integration
β βββ jira/ # Jira integration
β βββ hubspot/ # HubSpot integration
β βββ notion/ # Notion integration
β βββ okta/ # Okta integration
β βββ salesforce/ # Salesforce integration
β βββ slack/ # Slack integration
β βββ postgres/ # PostgreSQL integration
-
Clone the Repository:
git clone <repository-url> cd quix
-
Install Dependencies:
yarn install
-
Environment Configuration:
cp .env.example .env
Configure the following in your
.env:-
PORT: Server port (default: 3000) -
OPENAI_API_KEY: OpenAI API key -
SLACK_BOT_TOKEN: Slack bot token -
SLACK_SIGNING_SECRET: Slack signing secret -
SELFSERVER_URL: Your Domain (for development use your ngrok url) -
DB_HOST: Database Hostname -
DB_PORT: Database Port -
DB_USER: Database User -
DB_PASSWORD: Database Password -
DB_NAME: Database Name -
REDIS_HOST: Redis Hostname -
REDIS_PORT: Redis PORT
-
-
Slack App Setup:
a. For Local Development:
# Install ngrok or similar tool for tunneling brew install ngrok # macOS # or npm install -g ngrok # Using npm # Start your application yarn start:dev # In a new terminal, create a tunnel ngrok http 3000
b. Create and Configure the Slack App:
-
Go to Slack API Dashboard
-
Click "Create New App" β "From an app manifest"
-
Select your workspace and click "Next"
-
Copy the contents of
slack_app_manifest.yml -
Replace the placeholder URLs in the manifest:
<YOUR_EVENTS_URL>βhttps://your-domain/slack/events<YOUR_INTERACTIONS_URL>βhttps://your-domain/slack/interactions<YOUR_REDIRECT_URL>βhttps://your-domain/slack/install
For local development, use your ngrok URL:
https://your-ngrok-url.ngrok.io/slack/...For production, use your actual domain:
https://your-domain.com/slack/... -
Click "Create"
c. Install the App:
- Navigate to "OAuth & Permissions" in your Slack app settings
- Click "Install to Workspace"
- Copy the "Bot User OAuth Token" and add it to your
.envasSLACK_BOT_TOKEN - Go to "Basic Information" and copy the "Signing Secret" to your
.envasSLACK_SIGNING_SECRET
-
-
Database Setup:
yarn db:migrate
-
Development Mode:
yarn start:dev
-
Production Build:
yarn build yarn start:prod
Run with Docker:
# Build the image
docker build -t quix .
# Run with environment variables
docker run -p 3000:3000 --env-file .env quixOr use Docker Compose for local development:
docker-compose -f docker-compose.local.yml up-
Create a new integration package:
cd agent-packages/packages mkdir new-integration -
Follow the package structure:
src/index.ts- Main exportssrc/types.ts- Type definitionssrc/tools.ts- Integration tools
-
Build and link the package:
./link.sh
GET /health - Health check endpoint.
To add a new integration:
- Create a new package in
agent-packages/packages/ - Implement the integration following the common package structure
- Build and link the new package
- Import and register the package in the main application
Apache License, Version 2.0
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.