Skip to content

clearfeed/quix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ Quix: AI-Powered Slack Agent

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.

πŸ”— Supported Integrations

  • GitHub - Repository and code management
  • Jira - Project and issue tracking
  • HubSpot - CRM and marketing
  • PostgreSQL - Database queries
  • Notion - Workspace docs and knowledge management
  • Okta - Identity and access management
  • Salesforce - CRM and sales automation
  • Slack - Messaging and collaboration

✨ Key Features

  • 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

πŸ—οΈ Project 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

πŸ› οΈ Setup and Installation

  1. Clone the Repository:

    git clone <repository-url>
    cd quix
  2. Install Dependencies:

    yarn install
  3. 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

  4. 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:

    1. Go to Slack API Dashboard

    2. Click "Create New App" β†’ "From an app manifest"

    3. Select your workspace and click "Next"

    4. Copy the contents of slack_app_manifest.yml

    5. 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/...

    6. Click "Create"

    c. Install the App:

    1. Navigate to "OAuth & Permissions" in your Slack app settings
    2. Click "Install to Workspace"
    3. Copy the "Bot User OAuth Token" and add it to your .env as SLACK_BOT_TOKEN
    4. Go to "Basic Information" and copy the "Signing Secret" to your .env as SLACK_SIGNING_SECRET
  5. Database Setup:

    yarn db:migrate
  6. Development Mode:

    yarn start:dev
  7. Production Build:

    yarn build
    yarn start:prod

🐳 Docker Support

Run with Docker:

# Build the image
docker build -t quix .

# Run with environment variables
docker run -p 3000:3000 --env-file .env quix

Or use Docker Compose for local development:

docker-compose -f docker-compose.local.yml up

🧩 Extending the Platform

  1. Create a new integration package:

    cd agent-packages/packages
    mkdir new-integration
  2. Follow the package structure:

    • src/index.ts - Main exports
    • src/types.ts - Type definitions
    • src/tools.ts - Integration tools
  3. Build and link the package:

    ./link.sh

Health Check

GET /health - Health check endpoint.

🧩 Extending with New Integrations

To add a new integration:

  1. Create a new package in agent-packages/packages/
  2. Implement the integration following the common package structure
  3. Build and link the new package
  4. Import and register the package in the main application

πŸ“œ License

Apache License, Version 2.0

🀝 Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

About

Query your business tools from Slack

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 20