diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index cd56550536a1a138d63a74b3e6fb298a3e2bc8f5..7a4590eded1299dc95dacf97995de58edb510684 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -35,7 +35,7 @@ jobs:
     - name: Set up Python ${{ matrix.python-version }}
       run: uv venv --python 3.13
     - name: Install dependencies
-      run: uv pip install -e .[dev]
+      run: uv pip install -e .[docs]
     - name: Build docs
       run: |
         uv run sphinx-build -M html docs/source docs/build
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index b242c8bc42509495bf6f5520219b7e7ad2850f62..5df3452686d97365560b6e46528df710a5d80d52 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -49,7 +49,7 @@ jobs:
     #   run: echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV
 
     - name: Install dependencies
-      run: uv pip install -e .[dev]
+      run: uv pip install -e .[all]
     - name: Install nltk
       run: uv pip install nltk
 
diff --git a/pyproject.toml b/pyproject.toml
index 6ea6fe95241892a6591bd07f546804b1631c0b38..0d8c75c232799617b51b559ec90fbe768571f5b3 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -51,6 +51,19 @@ docs = [
     "sphinxawesome-theme>=5.2.0,<6",
 ]
 cohere = ["cohere>=5.9.4,<6.00"]
+all = [
+    "semantic-router[local]",
+    "semantic-router[hybrid]",
+    "semantic-router[pinecone]",
+    "semantic-router[vision]",
+    "semantic-router[mistralai]",
+    "semantic-router[qdrant]",
+    "semantic-router[google]",
+    "semantic-router[bedrock]",
+    "semantic-router[postgres]",
+    "semantic-router[fastembed]",
+    "semantic-router[cohere]",
+]
 
 [tool.uv.sources]
 torch = { git = "https://github.com/pytorch/pytorch.git" }
diff --git a/uv.lock b/uv.lock
index 5e5ad8681c1fcf89710e3ccad8cf0d10cc33fa25..4497a657ab475c678bdea01bf6664f45656b4c77 100644
--- a/uv.lock
+++ b/uv.lock
@@ -3288,6 +3288,24 @@ dependencies = [
 ]
 
 [package.optional-dependencies]
+all = [
+    { name = "boto3" },
+    { name = "botocore" },
+    { name = "cohere" },
+    { name = "fastembed", marker = "python_full_version < '3.13'" },
+    { name = "google-cloud-aiplatform" },
+    { name = "llama-cpp-python", marker = "python_full_version < '3.13'" },
+    { name = "mistralai" },
+    { name = "pillow", marker = "python_full_version < '3.13'" },
+    { name = "pinecone" },
+    { name = "pinecone-text" },
+    { name = "qdrant-client", version = "1.12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13'" },
+    { name = "qdrant-client", version = "1.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.13'" },
+    { name = "tokenizers", marker = "python_full_version < '3.13'" },
+    { name = "torch", marker = "python_full_version < '3.13'" },
+    { name = "torchvision", marker = "python_full_version < '3.13'" },
+    { name = "transformers", marker = "python_full_version < '3.13'" },
+]
 bedrock = [
     { name = "boto3" },
     { name = "botocore" },
@@ -3372,6 +3390,17 @@ requires-dist = [
     { name = "qdrant-client", marker = "extra == 'qdrant'", specifier = ">=1.11.1,<2" },
     { name = "regex", specifier = ">=2023.12.25" },
     { name = "requests-mock", specifier = ">=1.12.1,<2" },
+    { name = "semantic-router", extras = ["bedrock"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["cohere"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["fastembed"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["google"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["hybrid"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["local"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["mistralai"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["pinecone"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["postgres"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["qdrant"], marker = "extra == 'all'" },
+    { name = "semantic-router", extras = ["vision"], marker = "extra == 'all'" },
     { name = "sphinx", marker = "extra == 'docs'", specifier = ">=7.0.0,<8" },
     { name = "sphinxawesome-theme", marker = "extra == 'docs'", specifier = ">=5.2.0,<6" },
     { name = "tiktoken", specifier = ">=0.6.0,<1.0.0" },