[PR #44] [CLOSED] feat: Add custom model support, documentation #85

Closed
opened 2026-02-27 07:20:21 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/KeygraphHQ/shannon/pull/44
Author: @JNX03
Created: 1/10/2026
Status: Closed

Base: mainHead: main


📝 Commits (4)

  • 6d78c05 del: pentest report file (unuse)
  • 65ebe19 feat: add --model for specific custom
  • fcdc2a6 docs: add docs for setting custom model and custom base url
  • bc6e253 reverse: bring report file back

📊 Changes

7 files changed (+93 additions, -39 deletions)

View changed files

📝 Dockerfile (+3 -0)
📝 README.md (+18 -2)
📝 src/ai/claude-executor.ts (+6 -4)
📝 src/checkpoint-manager.ts (+23 -15)
📝 src/cli/command-handler.ts (+7 -5)
📝 src/phases/pre-recon.ts (+9 -5)
📝 src/shannon.ts (+27 -8)

📄 Description

This pull request addresses multiple open issues by improving model configurability, updating documentation, and cleaning up unused files.

I really enjoy this project and appreciate the work that’s gone into it — thanks for maintaining it 🙌
I’m happy to contribute and support it where I can.

Changes included

  • Feature: Add --model flag to allow specifying a custom model at runtime
  • Docs: Add documentation for configuring a custom model and custom base URL
  • Chore: Remove unused pentest report file

Commits

  • del: pentest report file (unused)
  • feat: add --model for specific custom
  • docs: add docs for setting custom model and custom base url

Build verification

Docker build completed successfully:

docker build -t shannon:latest .
Build output
[+] Building 59.6s (28/28) FINISHED                                                                     docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                    0.2s
 => => transferring dockerfile: 4.58kB                                                                                  0.1s
 => [internal] load metadata for cgr.dev/chainguard/wolfi-base:latest                                                   1.5s
 => [internal] load .dockerignore                                                                                       0.1s
 => => transferring context: 772B                                                                                       0.0s
 => [internal] load build context                                                                                       9.4s
 => => transferring context: 156.14MB                                                                                   9.4s
 => [builder 1/6] FROM cgr.dev/chainguard/wolfi-base:latest@sha256:caa431d92d0b6f31c4845ddca9c4dd813d5f488ba0e3416ff61  0.0s
 => => resolve cgr.dev/chainguard/wolfi-base:latest@sha256:caa431d92d0b6f31c4845ddca9c4dd813d5f488ba0e3416ff6135d83b2f  0.0s
 => CACHED [runtime  2/18] RUN apk update && apk add --no-cache     git     bash     curl     ca-certificates     libp  0.0s
 => CACHED [builder 2/6] RUN apk update && apk add --no-cache     build-base     git     curl     wget     ca-certific  0.0s
 => CACHED [builder 3/6] RUN mkdir -p /go/bin                                                                           0.0s
 => CACHED [builder 4/6] RUN go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest                0.0s
 => CACHED [builder 5/6] RUN git clone --depth 1 https://github.com/urbanadventurer/WhatWeb.git /opt/whatweb &&     ch  0.0s 
 => CACHED [builder 6/6] RUN pip3 install --no-cache-dir schemathesis                                                   0.0s 
 => CACHED [runtime  3/18] COPY --from=builder /go/bin/subfinder /usr/local/bin/                                        0.0s 
 => CACHED [runtime  4/18] COPY --from=builder /opt/whatweb /opt/whatweb                                                0.0s
 => CACHED [runtime  5/18] COPY --from=builder /usr/local/bin/whatweb /usr/local/bin/whatweb                            0.0s 
 => CACHED [runtime  6/18] RUN gem install addressable                                                                  0.0s 
 => CACHED [runtime  7/18] COPY --from=builder /usr/lib/python3.*/site-packages /usr/lib/python3.12/site-packages       0.0s 
 => CACHED [runtime  8/18] COPY --from=builder /usr/bin/schemathesis /usr/bin/                                          0.0s 
 => CACHED [runtime  9/18] RUN addgroup -g 1001 pentest &&     adduser -u 1001 -G pentest -s /bin/bash -D pentest       0.0s 
 => CACHED [runtime 10/18] WORKDIR /app                                                                                 0.0s 
 => CACHED [runtime 11/18] COPY package*.json ./                                                                        0.0s 
 => CACHED [runtime 12/18] COPY mcp-server/package*.json ./mcp-server/                                                  0.0s 
 => CACHED [runtime 13/18] RUN npm ci &&     cd mcp-server && npm ci && cd .. &&     npm cache clean --force            0.0s 
 => [runtime 14/18] COPY . .                                                                                            2.3s 
 => [runtime 15/18] RUN cd mcp-server && npm run build && cd .. && npm run build                                        7.3s 
 => [runtime 16/18] RUN npm prune --production &&     cd mcp-server && npm prune --production                           6.4s 
 => [runtime 17/18] RUN mkdir -p /app/sessions /app/deliverables /app/repos /app/configs &&     mkdir -p /tmp/.cache   16.8s 
 => [runtime 18/18] RUN git config --global --add safe.directory '*'                                                    0.5s 
 => exporting to image                                                                                                 14.5s 
 => => exporting layers                                                                                                10.8s 
 => => exporting manifest sha256:a0d5eb1efafbe09d73a1c8ec3d00d87fe36ec4558a421eb65d3e35d086c0278e                       0.0s 
 => => exporting config sha256:ec6ca7e0200064c1149dc24cea75284016935fe65cd27344db2fc617ef290fb3                         0.0s 
 => => exporting attestation manifest sha256:fca824765a4bf4bf7a241a267704d7f352bd06394d15a40fad57a0b3852892a8           0.1s 
 => => exporting manifest list sha256:8b8bfac107f195a9c9ac81bbf52bf57e1397aafeb302138937e675be432e477c                  0.0s 
 => => naming to docker.io/library/shannon:latest                                                                       0.0s 
 => => unpacking to docker.io/library/shannon:latest                                                                    3.5s 

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/KeygraphHQ/shannon/pull/44 **Author:** [@JNX03](https://github.com/JNX03) **Created:** 1/10/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (4) - [`6d78c05`](https://github.com/KeygraphHQ/shannon/commit/6d78c05e0b30cb8815d5d87d24aaf93161ac84af) del: pentest report file (unuse) - [`65ebe19`](https://github.com/KeygraphHQ/shannon/commit/65ebe19a46875dc93927787983cec2949081d37d) feat: add --model for specific custom - [`fcdc2a6`](https://github.com/KeygraphHQ/shannon/commit/fcdc2a6fdb2b514e04c265e4047e55b9130a9863) docs: add docs for setting custom model and custom base url - [`bc6e253`](https://github.com/KeygraphHQ/shannon/commit/bc6e25382312e355ebb48e8f2a6a45ee88731831) reverse: bring report file back ### 📊 Changes **7 files changed** (+93 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `Dockerfile` (+3 -0) 📝 `README.md` (+18 -2) 📝 `src/ai/claude-executor.ts` (+6 -4) 📝 `src/checkpoint-manager.ts` (+23 -15) 📝 `src/cli/command-handler.ts` (+7 -5) 📝 `src/phases/pre-recon.ts` (+9 -5) 📝 `src/shannon.ts` (+27 -8) </details> ### 📄 Description This pull request addresses multiple open issues by improving model configurability, updating documentation, and cleaning up unused files. I really enjoy this project and appreciate the work that’s gone into it — thanks for maintaining it 🙌 I’m happy to contribute and support it where I can. #### **Changes included** * **Feature:** Add `--model` flag to allow specifying a custom model at runtime * **Docs:** Add documentation for configuring a custom model and custom base URL * **Chore:** Remove unused pentest report file #### **Related issues** * Fixes [https://github.com/KeygraphHQ/shannon/issues/43](https://github.com/KeygraphHQ/shannon/issues/43) * Fixes [https://github.com/KeygraphHQ/shannon/issues/42](https://github.com/KeygraphHQ/shannon/issues/42) * Fixes [https://github.com/KeygraphHQ/shannon/issues/37](https://github.com/KeygraphHQ/shannon/issues/37) #### **Commits** * `del: pentest report file (unused)` * `feat: add --model for specific custom` * `docs: add docs for setting custom model and custom base url` #### **Build verification** Docker build completed successfully: ```bash docker build -t shannon:latest . ``` <details> <summary>Build output</summary> ``` [+] Building 59.6s (28/28) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.2s => => transferring dockerfile: 4.58kB 0.1s => [internal] load metadata for cgr.dev/chainguard/wolfi-base:latest 1.5s => [internal] load .dockerignore 0.1s => => transferring context: 772B 0.0s => [internal] load build context 9.4s => => transferring context: 156.14MB 9.4s => [builder 1/6] FROM cgr.dev/chainguard/wolfi-base:latest@sha256:caa431d92d0b6f31c4845ddca9c4dd813d5f488ba0e3416ff61 0.0s => => resolve cgr.dev/chainguard/wolfi-base:latest@sha256:caa431d92d0b6f31c4845ddca9c4dd813d5f488ba0e3416ff6135d83b2f 0.0s => CACHED [runtime 2/18] RUN apk update && apk add --no-cache git bash curl ca-certificates libp 0.0s => CACHED [builder 2/6] RUN apk update && apk add --no-cache build-base git curl wget ca-certific 0.0s => CACHED [builder 3/6] RUN mkdir -p /go/bin 0.0s => CACHED [builder 4/6] RUN go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest 0.0s => CACHED [builder 5/6] RUN git clone --depth 1 https://github.com/urbanadventurer/WhatWeb.git /opt/whatweb && ch 0.0s => CACHED [builder 6/6] RUN pip3 install --no-cache-dir schemathesis 0.0s => CACHED [runtime 3/18] COPY --from=builder /go/bin/subfinder /usr/local/bin/ 0.0s => CACHED [runtime 4/18] COPY --from=builder /opt/whatweb /opt/whatweb 0.0s => CACHED [runtime 5/18] COPY --from=builder /usr/local/bin/whatweb /usr/local/bin/whatweb 0.0s => CACHED [runtime 6/18] RUN gem install addressable 0.0s => CACHED [runtime 7/18] COPY --from=builder /usr/lib/python3.*/site-packages /usr/lib/python3.12/site-packages 0.0s => CACHED [runtime 8/18] COPY --from=builder /usr/bin/schemathesis /usr/bin/ 0.0s => CACHED [runtime 9/18] RUN addgroup -g 1001 pentest && adduser -u 1001 -G pentest -s /bin/bash -D pentest 0.0s => CACHED [runtime 10/18] WORKDIR /app 0.0s => CACHED [runtime 11/18] COPY package*.json ./ 0.0s => CACHED [runtime 12/18] COPY mcp-server/package*.json ./mcp-server/ 0.0s => CACHED [runtime 13/18] RUN npm ci && cd mcp-server && npm ci && cd .. && npm cache clean --force 0.0s => [runtime 14/18] COPY . . 2.3s => [runtime 15/18] RUN cd mcp-server && npm run build && cd .. && npm run build 7.3s => [runtime 16/18] RUN npm prune --production && cd mcp-server && npm prune --production 6.4s => [runtime 17/18] RUN mkdir -p /app/sessions /app/deliverables /app/repos /app/configs && mkdir -p /tmp/.cache 16.8s => [runtime 18/18] RUN git config --global --add safe.directory '*' 0.5s => exporting to image 14.5s => => exporting layers 10.8s => => exporting manifest sha256:a0d5eb1efafbe09d73a1c8ec3d00d87fe36ec4558a421eb65d3e35d086c0278e 0.0s => => exporting config sha256:ec6ca7e0200064c1149dc24cea75284016935fe65cd27344db2fc617ef290fb3 0.0s => => exporting attestation manifest sha256:fca824765a4bf4bf7a241a267704d7f352bd06394d15a40fad57a0b3852892a8 0.1s => => exporting manifest list sha256:8b8bfac107f195a9c9ac81bbf52bf57e1397aafeb302138937e675be432e477c 0.0s => => naming to docker.io/library/shannon:latest 0.0s => => unpacking to docker.io/library/shannon:latest 3.5s ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 07:20:21 +03:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shannon-KeygraphHQ#85
No description provided.