Installation Guide
This guide shows how to set up Socratic Shell collaboration patterns with your AI tool. We begin by describing the general process, but you can also find specific instructions for Claude Code and Q CLI below.
Tool-agnostic instructions
Global setup
Add the main.md
file to your "global context" along with some basic identifying information (e.g., your name). This file contains a dialog that will be read by the LLM to instruct it in the basics of collaborative prompting.
For myself, I do it like this:
- Clone the socratic-shell repository onto my local system.
- Update my global context to reference the
main.md
file directly from the checkout and then add something like "My name is Niko. I am a designer of the Rust programming language. I like an informal communication style."
This allows me to git pull
periodically and pick up the latest iterations.
Project Setup (optional)
The repo also includes a number of prompts that capture particular patterns that projects can use on an à la carte basis. These are designed to be copied and sync'd with your project, a kind of "poor man's git submodule". The idea is that they should be part of your project repository so that all people working on it share the same working style. The installation script can also update them to the latest versions available on socratic-shell.
To install those scripts run
curl https://raw.githubusercontent.com/socratic-shell/socratic-shell/main/src/prompts/project/install.sh | bash
which will create a .socratic-shell
directory in your project containing the markdown files from the project prompts directory.
You can then add the ones that you want to your project's context in whatever way befits your tool. As an example, the CLAUDE.md file on the socratic-shell/dialectic repo includes a line like
We track progress in github tracking issues on the repository `socratic-shell/dialectic':
@.socratic-shell/github-tracking-issues.md
Claude Code instructions
Global Setup
-
Clone this repository somewhere permanent on your system:
git clone https://github.com/socratic-shell/socratic-shell.git ~/socratic-shell
-
Create or edit
~/.claude/CLAUDE.md
and add:# Your Personal Info My name is [Your Name] and I prefer [informal/formal] communication style. # Socratic Shell Collaboration Patterns @[path-to-socratic-shell]/src/prompts/user/main.md # Your additional customizations here...
Project Setup (optional)
-
From your project directory, run the sync script:
curl https://raw.githubusercontent.com/socratic-shell/socratic-shell/main/src/prompts/project/install.sh | bash
-
Create or edit your project's
CLAUDE.md
file and add:# Project Overview This project is [brief description]. We use GitHub repository [org/repo] for tracking issues. # Socratic Shell Project Patterns @.socratic-shell/README.md # Additional project-specific prompts @.socratic-shell/github-tracking-issues.md @.socratic-shell/ai-insights.md
Q CLI instructions
Global Setup
-
Clone this repository somewhere permanent on your system:
git clone https://github.com/socratic-shell/socratic-shell.git ~/socratic-shell
-
**Create a file like
whoami.md
somewhere permanent on your system:My name is [Your Name] and I prefer [informal/formal] communication style.
-
**Add both of those files to your Q CLI global context by running these commands from inside Q CLI:
/context add --global [path-to-socratic-shell]/src/prompts/user/main.md /context add --global [path-to-whoami]/whoami.md
Project Setup (optional)
-
From your project directory, run the sync script:
curl https://raw.githubusercontent.com/socratic-shell/socratic-shell/main/src/prompts/project/install.sh | bash
-
Add chosen pieces of context to your project: For github tracking issues in particular, you may want to add another file indicating where your github repository is.
/context add .socratic-shell/github-tracking-issues.md /context add .socratic-shell/ai-insights.md
Frequently asked questions
The main.md
prompt is a dialog, am I supposed to give it to the LLM as context or is this an example for me to read?
Yes. That is, that file is literally what you should give the LLM as context, but it can also serve as an example for you to read. That's kind of the idea (using a dialog helps the LLM get a better idea for how things should go).
What is this @filename
syntax? It doesn't seem to work for me.
That is a syntax used by Claude Code to embed prompts from other files. Your tool may have its own syntax, though I've found that many LLMs are smart enough to follow the link regardless if it will be useful.
The sync script fails, what gives?
Make sure you're in a git repository and have no uncommitted changes in .socratic-shell/
. The script is designed to be safe and will warn about conflicts. Or file an issue with your details -- this stuff is not exactly widely tested.
How do I update to newer versions?
For global patterns, git pull
in your socratic-shell directory. For project patterns, re-run the sync script - it will detect and update changes automatically.