1. Conduid
  2. AI
  3. Soulshack
MCP server · AI

Soulshack

soulshack, an irc chatbot. openai/ollama/gemini/anthropic apis. basic shell tools and mcp server support.

Unclaimed GPL-3.0 last commit 7 months ago blahblahblahagenticchatbotanthropicaigeminiirc
58Fair

Scored 4 days ago · breakdown

About Soulshack

Soulshack is an MCP server published by pkdindustries in the AI category: soulshack, an irc chatbot. openai/ollama/gemini/anthropic apis. basic shell tools and mcp server support. It has been installed 0 times through Conduid.

The repository has 28 stars and 5 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx soulshack

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Soulshack

Powered by Claude · Grounded in docs

I know everything about Soulshack. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.93soulshack-v0.93 · 13 Dec 2025new commands /stats - display comprehensive session statistics: token usage (input/output) context capacity percentage message counts by role (user, assistant, tool) participant count session TTL and expiry countdown /tools load and /tools…
v0.92soulshack-v0.92 · 3 Dec 2025docs cleaned up readme.md added docs/architecture.md added docs/contributing.md added architecture diagram internal abstract tooling from girc implementation bugfixes fixed openai endpoint url
v0.91v0.91 · 2 Dec 2025v0.91 uses latest [polly](https://github.com/alexschlessinger/pollytool) for tool use improvements including parallel toolcalls. new flag: `urlwatcher` - respond to urls without being addressed (for use with eg a browser tool) new…
v0.89v0.89 · 19 Aug 2025What's Changed refactors to use [polly](https://github.com/alexschlessinger/pollytool) package for llm stuff we get real streaming in return and net -1800 loc for the bot new: thinking to enable reasoning showthinkingactions to announce…
v0.87v0.87 · 10 Aug 2025Resolved an issue where multiple tool calls in a single assistant response would cause "tool_call_id did not have response messages" errors.

README

Soulshack User Guide

soulshack

Soulshack is an advanced IRC chatbot powered by LLMs, designed to bridge traditional chat with modern AI capabilities.

Features

  • Multi-Provider Support: Works with OpenAI, Anthropic, Google Gemini, and Ollama.
  • Unified Tool System: Supports shell scripts, MCP servers, and native IRC tools.
  • Secure: Full SSL/TLS and SASL authentication support.
  • Session Management: Configurable history, context window, and session TTL.
  • Streaming: Real-time responses with IRC-appropriate chunking.
  • Passive Mode: Optional URL watching and analysis.
  • Runtime Configuration: Manage settings via IRC commands.

Quickstart

Option 1: Docker

docker build . -t soulshack:dev

Option 2: Build from Source

Prerequisites: Go 1.23+

  1. Clone and Build:

    git clone https://github.com/pkdindustries/soulshack.git
    cd soulshack
    go build -o soulshack cmd/soulshack/main.go
    
  2. Run:

    Configuration File (Recommended)

    Local Binary:

    ./soulshack --config examples/chatbot.yml
    

    Docker:

    # Mount config file to container
    docker run -v $(pwd)/examples/chatbot.yml:/config.yml soulshack:dev \
      --config /config.yml
    

    All Flags (Kitchen Sink)

    Local Binary:

    ./soulshack \
      --nick soulshack \
      --server irc.example.com \
      --port 6697 \
      --tls \
      --channel '#soulshack' \
      --saslnick mybot \
      --saslpass mypassword \
      --admins "admin!*@*" \
      --model openai/gpt-5.1 \
      --openaikey "sk-..." \
      --maxtokens 4096 \
      --temperature 1 \
      --apitimeout 5m \
      --tool "examples/tools/datetime.sh" \
      --tool "irc__op" \
      --thinkingeffort off \
      --urlwatcher \
      --verbose
    

    Docker:

    docker run soulshack:dev \
      --nick soulshack \
      --server irc.example.com \
      --port 6697 \
      --tls \
      --channel '#soulshack' \
      --saslnick mybot \
      --saslpass mypassword \
      --admins "admin!*@*" \
      --model openai/gpt-5.1 \
      --openaikey "sk-..." \
      --maxtokens 4096 \
      --temperature 1 \
      --apitimeout 5m \
      --thinkingeffort off \
      --urlwatcher \
      --verbose
    # Note: Local file tools/scripts require volume mounts to work in Docker
    

    Ollama (Local)

    Local Binary:

    ./soulshack \
      --server irc.example.com \
      --channel '#soulshack' \
      --model ollama/qwen3:30b \
      --ollamaurl "http://localhost:11434"
    

    Docker:

    # Use --network host to access Ollama on localhost
    docker run --network host soulshack:dev \
      --server irc.example.com \
      --channel '#soulshack' \
      --model ollama/qwen3:30b \
      --ollamaurl "http://localhost:11434"
    

    Anthropic

    Local Binary:

    ./soulshack \
      --server irc.example.com \
      --channel '#soulshack' \
      --model anthropic/claude-opus-4.5 \
      --anthropickey "sk-ant-..."
    

    Docker:

    docker run soulshack:dev \
      --server irc.example.com \
      --channel '#soulshack' \
      --model anthropic/claude-opus-4.5 \
      --anthropickey "sk-ant-..."
    

Configuration Flags

Flag Default Description
-n, --nick soulshack Bot nickname
-s, --server localhost IRC server address
-p, --port 6667 IRC server port
-c, --channel Channel to join
-e, --tls false Enable TLS
--tlsinsecure false Skip TLS cert verification
--saslnick SASL username
--saslpass SASL password
-b, --config Path to YAML config file
-A, --admins Comma-separated admin hostmasks
-V, --verbose false Enable debug logging
--model ollama/llama3.2 LLM model (provider/name)
--maxtokens 4096 Max tokens per response
--temperature 0.7 Sampling temperature
-t, --apitimeout 5m API request timeout
--openaikey OpenAI API key
--anthropickey Anthropic API key
--geminikey Google Gemini API key
--ollamaurl http://localhost:11434 Ollama API endpoint
--tool Path to tool definition (repeatable)
--thinkingeffort off Reasoning effort level: off, low, medium, high
--urlwatcher false Enable passive URL watching
--sandbox false Sandbox shell, bash, and MCP tools (see below)

YAML Configuration

Create a config.yml file:

server:
  nick: "soulshack"
  server: "irc.example.com"
  port: 6697
  channel: "#soulshack"
  tls: true

bot:
  admins: ["nick!user@host"]
  tools:
    - "examples/tools/datetime.sh"
    - "examples/mcp/filesystem.json"

Run with: ./soulshack --config config.yml

Commands

Command Admin? Description
/help No Show available commands
/version No Show bot version
/tools No List loaded tools
/tools add <spec> Yes Add a tool at runtime
/tools remove <pattern> Yes Remove a tool
/admins Yes List admins
/admins add <hostmask> Yes Add an admin
/set <key> <value> Yes Set config parameter
/get <key> No Get config parameter

Built-in Tools

Soulshack comes with native IRC management tools (permissions apply):

  • irc_op, irc_deop: Grant/revoke operator status.
  • irc_kick, irc_ban, irc_unban: User management.
  • irc_topic: Set channel topic.
  • irc_invite: Invite users to channel.
  • irc_mode_set, irc_mode_query: Manage channel modes.
  • irc_names, irc_whois: User information.

Sandboxing

With --sandbox (or sandbox: true in YAML, env SOULSHACK_SANDBOX), all shell scripts, the built-in bash tool, and MCP servers launched via --tool run inside a platform sandbox. Disabled by default.

Requirements: sandbox-exec on macOS, bwrap (bubblewrap) on Linux. If the backend isn't available the flag is ignored with a sandbox_unavailable warning and tools run as before.

Default policy (applied to every sandboxed tool):

  • Writes allowed only under the OS temp directory.
  • Outbound network blocked.
  • Sensitive paths blocked from reads: ~/.ssh, ~/.gnupg, ~/.aws, ~/.azure, ~/.config/gcloud, ~/.kube, ~/.docker/config.json, ~/.npmrc, ~/.config/gh, ~/.netrc, ~/.git-credentials, macOS keychains, and other credential stores.
  • Each sandboxed tool's description gets a [sandboxed] suffix so the model knows it's restricted.

Per-tool overrides — shell scripts declare a sandbox field in their --schema output; MCP server JSON files add it alongside command/args:

"sandbox": true
"sandbox": { "allowNetwork": true, "writablePaths": ["/tmp/data"] }
"sandbox": { "denyWrite": true }
"sandbox": { "allowEnv": ["HOME", "PATH"] }

false opts the tool out entirely (runs unsandboxed even when --sandbox is enabled). Absence of the field uses the default policy above. POLLYTOOL_* env vars are always stripped from sandboxed processes unless listed in allowEnv.

Native IRC tools (irc_op, irc_kick, etc.) run in-process and are unaffected.

The sandbox itself lives in pollytool — for the full config schema, merge semantics, and per-platform backend details see pollytool's Sandboxing section and API.md.

Documentation


Named as tribute to my old friend dayv, sp0t, who i think of often.

README mirrored from the source repository 4 days ago. The original is authoritative.

Questions

About Soulshack

How do I install Soulshack?

Run npx soulshack, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Soulshack safe to use with an AI agent?

Its trust score is 58 out of 100 (fair). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Soulshack still maintained?

The last commit was 7 months ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.