ProjectScribe is a command-line utility written in C++ that helps you quickly and easily generate a textual representation of your project structure. It's especially useful when sharing your project with others — be it a friend, a colleague, or an LLM (Large Language Model) — for review, analysis, or documentation.
- 📁 Generates a full project structure with folders, text files, and binary files
- 🧹 Supports both
.gitignoreand.psignorefor excluding files and directories - 📄 Includes the contents of all text files in the final output file (
project_structure.txt) - 🧠 Detects binary files based on null byte signatures
./project_scribe [path] [options]path— path to the root project directory (defaults to the current directory)
--use-gitignore— use.gitignoreinstead of.psignore--helpor-h— display help message
./project_scribe ./my_project --use-gitignoreAfter execution, the tool generates a project_structure.txt file containing:
- A hierarchy of files and folders
- Indication of binary files
- Contents of all readable text files
ProjectScribe supports its own ignore format file called .psignore, and can also fall back to .gitignore if --use-gitignore is specified.
The .psignore file must be placed at the root of the project being scanned. If the file is not found, a default ignore list will be used.
# This is a comment, it will be ignored.
# Add folder or file names to skip here.
# One entry per line.
# Folders
.idea
out/
dist/
# Files
CMakeCache.txt
compile_commands.json
# Extensions (must start with a dot)
.log
.tmp
.bakProjectScribe/
├── .gitignore
├── CMakeLists.txt
├── include/
│ └── ProjectScanner.hpp
└── src/
├── main.cpp
└── ProjectScanner.cpp
📁 Full project structure: ~/ProjectScribe
[FILE] .gitignore
[FILE] CMakeLists.txt
[DIR] include/
[FILE] ProjectScanner.hpp
[DIR] src/
[FILE] ProjectScanner.cpp
[FILE] main.cpp
📄 File contents:
[FILE] CMakeLists.txt:
--------------------
cmake_minimum_required(VERSION 3.16)
project(ProjectScribe)
...
--------------------
[FILE] src/main.cpp:
--------------------
#include "ProjectScanner.hpp"
...
--------------------
- C++17 compatible compiler
- CMake ≥ 3.16
git clone https://github.com/Sam1624/ProjectScribe.git
cd ProjectScribe
mkdir build && cd build
cmake ..
make
./project_scribe --helpThis project is licensed under the MIT License. See the LICENSE file for details.