├── .specstory
└── .gitignore
├── .cursorindexingignore
├── .github
└── ISSUE_TEMPLATE
│ ├── cloud-bug-feature.md
│ └── extension_report.md
├── install.sh
├── GOOD.md
├── bearclaude
└── changelog.md
└── README.md
/.specstory/.gitignore:
--------------------------------------------------------------------------------
1 | # SpecStory explanation file
2 | /.what-is-this.md
3 | # SpecStory project identity file
4 | /.project.json
5 |
--------------------------------------------------------------------------------
/.cursorindexingignore:
--------------------------------------------------------------------------------
1 |
2 | # Don't index SpecStory auto-save files, but allow explicit context inclusion via @ references
3 | .specstory/**
4 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/cloud-bug-feature.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Cloud Bug/Feature
3 | about: Report a bug or request a feature for SpecStory Cloud
4 | title: "[CLOUD] "
5 | labels: ''
6 |
7 | ---
8 |
9 | **Issue Type**
10 | - [ ] Bug Report
11 | - [ ] Feature Request
12 |
13 | **Describe the issue/request**
14 | A clear and concise description of the bug or feature request.
15 |
16 | **To Reproduce (for bugs)**
17 | Steps to reproduce the behavior:
18 | 1. Visit cloud.specstory.com
19 | 2. Click on '....'
20 | 3. Type '....'
21 | 4. See error
22 |
23 | **Expected behavior**
24 | A clear and concise description of what you expected to happen.
25 |
26 | **Screenshots & Relevant Logs**
27 | If applicable, add screenshots or logs to help explain your problem.
28 |
29 | **Your System (please complete the following information):**
30 | - Browser / Browser Version
31 |
32 | **Additional context**
33 | Add any other context about the problem or feature request here.
34 |
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | REPO="specstoryai/getspecstory"
5 | BINARY_NAME="specstory"
6 | INSTALL_DIR="/usr/local/bin"
7 |
8 | # Detect platform
9 | OS=$(uname -s | tr '[:upper:]' '[:lower:]')
10 | ARCH=$(uname -m)
11 |
12 | case $ARCH in
13 | x86_64) ARCH="x86_64" ;;
14 | arm64|aarch64) ARCH="arm64" ;;
15 | *) echo "❌ Unsupported architecture: $ARCH"; exit 1 ;;
16 | esac
17 |
18 | case $OS in
19 | darwin) OS="Darwin" ;;
20 | linux) OS="Linux" ;;
21 | *) echo "❌ Unsupported OS: $OS"; exit 1 ;;
22 | esac
23 |
24 | echo "🚀 Installing SpecStory CLI for $OS $ARCH..."
25 |
26 | # Get latest version
27 | VERSION=$(curl -s "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
28 |
29 | if [ -z "$VERSION" ]; then
30 | echo "❌ Failed to get latest version"
31 | exit 1
32 | fi
33 |
34 | # Download and install
35 | FILENAME="getspecstory_${OS}_${ARCH}.tar.gz"
36 | DOWNLOAD_URL="https://github.com/$REPO/releases/download/$VERSION/$FILENAME"
37 | TMP_DIR=$(mktemp -d)
38 |
39 | echo "📥 Downloading $VERSION..."
40 | curl -sL "$DOWNLOAD_URL" | tar -xz -C "$TMP_DIR"
41 |
42 | # Install with sudo if needed
43 | if [ -w "$INSTALL_DIR" ]; then
44 | mv "$TMP_DIR/$BINARY_NAME" "$INSTALL_DIR/"
45 | else
46 | echo "🔐 Installing to $INSTALL_DIR (requires sudo)..."
47 | sudo mv "$TMP_DIR/$BINARY_NAME" "$INSTALL_DIR/"
48 | fi
49 |
50 | chmod +x "$INSTALL_DIR/$BINARY_NAME"
51 | rm -rf "$TMP_DIR"
52 |
53 | echo "✅ SpecStory installed successfully!"
54 | echo "Try: $BINARY_NAME --version"
55 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/extension_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Extension/CLI Bug or Feature
3 | about: Report a bug or request a feature for SpecStory extensions or CLI
4 | title: "[EXTENSION/CLI] "
5 | labels: ''
6 |
7 | ---
8 |
9 | **Issue Type**
10 | - [ ] Bug Report
11 | - [ ] Feature Request
12 |
13 | **Product (check all that apply):**
14 | - [ ] SpecStory for Cursor
15 | - [ ] SpecStory for GitHub Copilot (VSCode)
16 | - [ ] SpecStory CLI (for Claude Code)
17 |
18 | **Describe the issue/request**
19 | A clear and concise description of the bug or feature request.
20 |
21 | **For Bug Reports:**
22 |
23 | **To Reproduce**
24 | Steps to reproduce the behavior:
25 | 1. Go to '...'
26 | 2. Click on '....'
27 | 3. Scroll down to '....'
28 | 4. See error
29 |
30 | **Expected behavior**
31 | A clear and concise description of what you expected to happen.
32 |
33 | **Screenshots & Relevant Logs**
34 | If applicable, add screenshots or logs to help explain your problem.
35 |
36 | **For Feature Requests:**
37 |
38 | **Is your feature request related to a problem? Please describe.**
39 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
40 |
41 | **Describe the solution you'd like**
42 | A clear and concise description of what you want to happen.
43 |
44 | **Your System (please complete the following information):**
45 | - Product Version: [e.g. Extension 0.11.0, CLI 0.0.2]
46 | - IDE Version (if applicable):
47 | - OS: [e.g. macOS 15.0, Windows 11, Ubuntu 22.04]
48 |
49 | **Additional context**
50 | Add any other context about the problem or feature request here.
51 |
--------------------------------------------------------------------------------
/GOOD.md:
--------------------------------------------------------------------------------
1 |
2 | # GOOD: A companion for GIT
3 |
4 | When AI agents are generating some, most, or all of your code, then occasional git commits of the resulting source code aren't sufficient. You also need a tool that ties the generated code back to the prompts and AI interactions that generated it.
5 |
6 | Here’s a short technical explainer video of GOOD, a Git companion designed for this.
7 |
8 |
9 | https://github.com/user-attachments/assets/ffc355ef-2ab7-45e1-9564-a350d0ea42c3
10 |
11 |
12 | # How GOOD enhances GIT
13 |
14 | | GOOD Capability | How It Complements Git |
15 | | --- | --- |
16 | | Tracks AI Responses | Each AI response is a versioned node, like a commit, but tied to a prompt rather than just a diff |
17 | | Preserves Intent | Stores the natural language prompt that led to code generation, ensuring reproducibility and traceability |
18 | | Links Human + AI Work | Anchors connect human edits to related AI suggestions and Git commits, offering bi-directional traceability |
19 | | Maintains Dual Repositories | GOOD runs a "shadow Git" that mirrors the Git repo but with AI prompt-intent-output context |
20 | | Improves Transparency | Developers can audit or revisit why code was generated, not just what changed |
21 | | Boosts Collaboration | Others can reuse prompts or understand design decisions more easily across contributors |
22 |
23 | # Call For Collaborators
24 |
25 | ## GOOD
26 | If you are working on a team that’s generating a lot of code with Cursor (or other AI IDEs), and struggling with understanding the intent behind all that code, we’d love some early users to work with us on alpha versions of GOOD.
27 |
28 | 👉 [Drop us a line in this GitHub Discussion](https://github.com/specstoryai/getspecstory/discussions/51)
29 |
30 | ## Use Case Design Partners
31 |
32 | If you're in charge of driving AI dev tool adoption at your company and are interested in ways to drive overall productivity we're actively seeking design partners for SpecStory for Teams.
33 |
34 | 👉 [Apply to be a Design Partner](https://specstory.com/teams)
35 |
36 |
37 | # How GOOD works
38 |
39 | GOOD mirrors the codebase, and the codebase's git repository with a "shadow" codebase and a "shadow" git repository. The difference is that the "shadow" git repository microversions the AI generated changes to files, adding data about the prompt that caused the change in the commit message.
40 |
41 | ## Scenario 1
42 |
43 | In the video we walk through this scenario and its here for your reference:
44 |
45 | Without git:
46 |
47 | | Change | Prior | File | Line | Git Commit | Shadow Commit |
48 | |--------|------------|-------------|------|---------------|---------------|
49 | | AI | New | ai-1.txt | 1 | No | a0 a1 |
50 | | AI | AI | ai-1.txt | 2 | No | a0 a1 |
51 | | AI | Manual | mixed-1.txt | 2 | No | a2 |
52 | | Manual | New/Manual | mixed-1.txt | 1 | No | a2 |
53 | | Manual | AI | mixed-1.txt | 3 | No | a2 |
54 |
55 | With git:
56 |
57 | | Change | Prior | File | Line | Git Commit | Shadow Commit |
58 | |--------|--------|-------------------------|------|---------------|---------------|
59 | | AI | New | ./with-git/ai-2.txt | 1 | g0 g1 | a3 a4 a5 |
60 | | AI | AI | ./with-git/ai-2.txt | 2 | g0 g1 | a3 a4 a5 |
61 | | AI | Manual | ./with-git/mixed-2.txt | 2 | g0 g1 | a6 |
62 | | Manual | New | ./with-git/manual-2.txt | 1 | g0 g1 | |
63 | | Manual | AI | ./with-git/mixed-2.txt | 3 | g0 g1 | a6 |
64 | | Manual | Manual | ./with-git/manual-2.txt | 2 | g0 g1 | |
65 |
66 | ## Match Validation
67 |
68 | This section contains a markdown table of match checks and what origin they should report for each line checked. The "Lineage" and "Comment" columns are just for understanding, and are not used in the check.
69 |
70 | | File | Line | Lineage | Origin | Comments |
71 | |-------------------------|------|------------------------|--------|----------|
72 | | ai-1.txt | 1 | a0 | a0 | Case 0 |
73 | | ai-1.txt | 2 | a0 → a1 | a1 | Case 0 |
74 | | mixed-1.txt | 1 | m0 | ? | Case 2 |
75 | | mixed-1.txt | 2 | m0 → a2 | a2 | Case 0 |
76 | | mixed-1.txt | 3 | m0 → a2 → m1 | ? | Case 2 |
77 | | manual-1.txt | 1 | m0 | ? | Case 6 |
78 | | ./with-git/ai-2.txt | 1 | a3 → g0 → g1 | a3 | Case 0 |
79 | | ./with-git/ai-2.txt | 2 | a3 → a4 → g0 → g1 | a4 | Case 0 |
80 | | ./with-git/ai-2.txt | 3 | a3 → g0 → a5 → g1 | a5 | Case 0 |
81 | | ./with-git/mixed-2.txt | 1 | m2 → g0 → g1 | g0 | Case 1 |
82 | | ./with-git/mixed-2.txt | 2 | m2 → g0 → a6 → g1 | a6 | Case 0 |
83 | | ./with-git/mixed-2.txt | 3 | m2 → g0 → a6 → m3 → g1 | g1 | Case 1 |
84 | | ./with-git/manual-2.txt | 1 | m2 → g0 → g1 | g0 | Case 4 |
85 | | ./with-git/manual-2.txt | 2 | m2 → g0 → m3 → g1 | g1 | Case 4 |
86 | | ./with-git/manual-2.txt | 3 | m2 → g0 → g1 → m4 | ? | Case 5 |
87 |
88 | ## Creation Sequence
89 |
90 | This section contains the sequence of changes that constitute this scenario. Changes are either `a`I, `m`anual, or `g`it. And followed by a 0-based sequential number (e.g. g0, g1, g2).
91 |
92 | Available actions for `a` and `m` are `create`, `modify`, `delete`. For `g` is `commit`.
93 |
94 | The `create` action is followed by a `line`/`lines` parenthetical which indicates the lines created in the file, these can be either `1` or a range from `1-n`.
95 |
96 | The `modify` action is followed by a `line`/`lines` parenthetical which indicates the lines modified in the file, these can be singular, comma delimitted, or a range.
97 |
98 | **m0**
99 | create manual-1.txt (line 1)
100 | create mixed-1.txt (lines 1-3)
101 |
102 | **a0**
103 | create ai-1.txt (lines 1-2)
104 |
105 | **a1**
106 | modify ai-1.txt (line 2)
107 |
108 | **a2**
109 | modify mixed-1.txt (line 2, 3)
110 |
111 | **m1**
112 | modify mixed-1.txt (line 3)
113 |
114 | **m2**
115 | create ./with-git/manual-2.txt (lines 1-2)
116 | create ./with-git/mixed-2.txt (lines 1-3)
117 |
118 | **a3**
119 | create ./with-git/ai-2.txt (lines 1-3)
120 |
121 | **a4**
122 | modify ./with-git/ai-2.txt (line 2)
123 |
124 | **g0**
125 | commit ./with-git/ai-2.txt
126 | commit ./with-git/manual-2.txt
127 | commit ./with-git/mixed-2.txt
128 |
129 | **a5**
130 | modify ./with-git/ai-2.txt (line 3)
131 |
132 | **a6**
133 | modify ./with-git/mixed-2.txt (line 2)
134 |
135 | **m3**
136 | modify ./with-git/mixed-2.txt (line 3)
137 | modify ./with-git/manual-2.txt (line 2)
138 |
139 | **g1**
140 | commit ./with-git/ai-2.txt
141 | commit ./with-git/mixed-2.txt
142 | commit ./with-git/manual-2.txt
143 |
144 | **m4**
145 | modify ./with-git/manual-2.txt (line 3)
146 |
147 |
148 |
149 |
--------------------------------------------------------------------------------
/bearclaude/changelog.md:
--------------------------------------------------------------------------------
1 | ## v0.8.0 (alpha) - 2025-08-04
2 |
3 | ### New
4 |
5 | - New & vastly improved markdown editor built with [CodeMirror](https://codemirror.net/)
6 | - All the latest Claude Code auto-save features of [SpecStory 0.7.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.7.0)
7 |
8 | ### Fixed
9 |
10 | - All the latest Claude Code auto-save fixes of [SpecStory 0.7.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.7.0)
11 |
12 | ### Known Issues
13 |
14 | - Some output from Claude Code might be low/no contrast in the Claude Code Terminal
15 | - Registration may not work for some users
16 | - Collapsing code blocks doesn't work in the preview mode of the markdown editor
17 |
18 |
19 | ## v0.7.0 (alpha) - 2025-07-27
20 |
21 | ### New
22 |
23 | - Shows the user and agent message count in the document sidebar for AI chat histories
24 | - The last opened file per project is now remembered and opened when the project is reopened
25 | - All the latest Claude Code auto-save features of [SpecStory 0.6.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.6.0)
26 |
27 | ### Fixed
28 |
29 | - When creating a new project, and choosing to use the template files,the template files were not getting timestamped correctly
30 | - When the BearClaude window is especially short and wide, the right panel empty state scrollbar was positioned incorrectly
31 | - Setting dialog now has the correct height
32 | - All the latest Claude Code auto-save fixes of [SpecStory 0.6.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.6.0)
33 |
34 |
35 | ## v0.6.0 (alpha) - 2025-07-15
36 |
37 | ### New
38 |
39 | - Right-click on any of your chat history and click "Resume Session" to continue that specific chat in a Claude Code session
40 | - New typography for the markdown editor
41 | - New typography for the Claude Code terminal
42 | - Add hover effect to Generate File Tree, Open in Finder, Open in Terminal, and Restart Claude Code buttons
43 | - All the latest Claude Code auto-save features of [SpecStory 0.5.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.5.0)
44 |
45 | ### Fixed
46 |
47 | - If nothing has been done in a Claude Code session, there is now no confirmation before a session is restarted with the restart button
48 | - If Claude Code had keyboard focus before a restart, it retains keyboard focus after the restart
49 | - All the latest Claude Code auto-save fixes of [SpecStory 0.5.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.5.0)
50 |
51 |
52 | ## v0.5.0 (alpha) - 2025-07-09
53 |
54 | ### New
55 |
56 | - Drag and drop files (e.g. screenshots) into the Claude Code Terminal to share them with the agent
57 | - Right-click on a document in the document sidebar for "Copy Path" and "Copy Relative Path"
58 | - Right-click in the document sidebar for "New Document"
59 | - All the latest Claude Code auto-save features of [SpecStory 0.4.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.4.0)
60 |
61 | ### Fixed
62 |
63 | - It took 2 clicks to change focus from the editor to the Claude Code terminal, and vice versa. Now it's 1 click.
64 | - The relative timestamps displayed on documents in the document sidebar now "age" with the passage of time
65 | - All the latest Claude Code auto-save fixes of [SpecStory 0.4.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.4.0)
66 |
67 |
68 | ## v0.4.0 (alpha) - 2025-07-04
69 |
70 | ### New
71 |
72 | - BearClaude now uses [Sparkle](https://sparkle-project.org/) for automatic updates.
73 | - Settings now has a "Help Us Improve" toggle to opt-out of app analytics.
74 | - All the latest Claude Code auto-save features of [SpecStory 0.3.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.3.0)
75 |
76 | ### Fixed
77 |
78 | - All the latest Claude Code auto-save fixes of [SpecStory 0.3.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.3.0)
79 |
80 |
81 | ## v0.3.0 (alpha) - 2025-07-02
82 |
83 | ### New
84 |
85 | - You can jump straight to open a file with Cmd-P or File → Go to File...
86 | - BearClaude will play a system sound when Claude Code needs your attention to approve an action. You can select the sound, or turn this off in BearClaude → Settings.
87 | - Active panel highlighting to make it easier to see if the markdown editor or Claude Code terminal is the active panel
88 | - All the latest Claude Code auto-save features of [SpecStory 0.2.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.2.0)
89 |
90 | ### Fixed
91 |
92 | - Fixed problems starting Claude Code within BearClaude for some users with environments that rely on the contents of `.zshrc` or `.bashrc`.
93 | - All the latest Claude Code auto-save fixes of [SpecStory 0.2.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.2.0)
94 |
95 |
96 | ## v0.2.0 (alpha) - 2025-06-27
97 |
98 | ### New
99 |
100 | - Launching BearClaude now works in the terminal, you can install `bearclaude` in BearClaude → Settings
101 | - All the latest Claude Code auto-save features of [SpecStory 0.1.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.1.0)
102 | - Home and End keys now work in the Claude Code terminal
103 | - Add File → Save (Cmd-S), even though BearClaude uses auto-save, Cmd-S is muscle memory to many people
104 | - Update the default markdown editor to be the Editor Only mode
105 | - Make the toggle between Editor Only and Live Preview mode "sticky" when BearClaude is restarted
106 |
107 | ### Fixed
108 |
109 | - All the latest Claude Code auto-save fixes of [SpecStory 0.1.0](https://github.com/specstoryai/getspecstory/releases/tag/v0.1.0)
110 | - Fixed ability to pass arguments to Claude Code via the Claude Code command in settings
111 | - Fixed the issue where the toolbar at the top of the Claude Code terminal would disappear when the app window was resized
112 | - Fixed a failure mode when the first time Claude Code has ever been run is in BearClaude
113 | - Better window sizing for first ever BearClaude launch
114 |
115 |
116 | ## v0.1.0 (alpha) - 2025-06-23
117 |
118 | ### New
119 |
120 | - SpecFlow Templates
121 | - New projects include [SpecFlow](https://www.specflow.com/) template files to help you turn your intent into software through structured planning and iterative execution with Claude Code
122 | - A "sticky" option to toggle off templates in new projects
123 | - Multiple Window Support
124 | - Open multiple BearClaude windows with Cmd-Shift-N (or File → New BearClaude Window)
125 | - Work on the same project in multiple windows, or manage different projects simultaneously
126 | - Claude Code
127 | - BearClaude now detects when Claude Code fails to start and provides helpful resources when it doesn't
128 | - Claude Code help is now available in the help menu
129 | - Claude Code best practices are now available in the help menu
130 |
131 | ### Fixed
132 |
133 | - Removed inoperable default SwiftUI tab menu items
134 |
135 |
136 | ## v0.0.2 (alpha) - 2025-06-20
137 |
138 | ### New
139 |
140 | - DMG installer for macOS
141 | - Checks for new versions of BearClaude
142 |
143 | ### Fixed
144 |
145 | - Shift-enter didn’t work in the Claude Code terminal
146 | - In the Markdown editor, typing at the bottom of the doc caused text to disappear from view
147 |
148 |
149 | ## v0.0.1 (alpha) - 2025-06-18
150 |
151 | BearClaude's initial alpha is here. Built for ourselves, released for you. A native macOS app with Claude Code built-in. Finally on your dock. 🐻✨
152 |
153 | ### New
154 |
155 | - Local-first markdown editing
156 | - Live preview for markdown
157 | - Claude Code integration
158 | - Chat history auto-save
159 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Intent is the new source code
6 |
7 | **Turn your AI development conversations into searchable, shareable knowledge.**
8 |
9 | Never lose a brilliant solution, code snippet, or architectural decision again. SpecStory captures, indexes, and makes searchable every interaction you have with AI coding assistants across all your projects and tools.
10 |
11 | [](https://specstory.com/api/badge?stat=installs)
12 | [](https://specstory.com/api/badge?stat=activeUsers)
13 | [](https://specstory.com/api/badge?stat=sessionsSaved)
14 | [](https://specstory.com/api/badge?stat=rulesGenerated)
15 |
16 |
17 | Connect with us ──▶
18 |
19 |
20 |
21 |
22 |
23 |