A collection of practical tools for technical writing, code analysis, and document processing. These tools help break down large files, analyze code changes, and convert diagrams for better AI interaction and documentation workflows.
git clone https://github.com/JoshWrites/Toolkit.git
cd ToolkitA multi-language tool for breaking down large source code files into smaller, manageable "shards" for easier analysis by AI language models.
Supported Languages:
- Python (.py) - Full AST-based parsing
- C++ (.cpp, .cxx, .cc, .hpp, .h) - Regex-based parsing
Features:
- Multiple sharding strategies (by type, name pattern, docstring, or even distribution)
- Smart detection of functions, classes, and methods
- Preservation of imports and global variables across all shards
- Enhanced index with detailed function metadata
- Automatic file type detection
Usage:
python file_sharder_v1.1.pyFollow the interactive prompts to:
- Specify the source file to shard
- Select an output directory
- Choose a sharding strategy
- Set the maximum elements per shard
Output:
- Language-specific directory:
{filename}_{lang}_shards_{timestamp}/ - Multiple source files (shards) with portions of the original code
- Enhanced index:
{filename}_{lang}_index_{timestamp}.json - README.md with usage instructions
An intelligent tool for breaking down large literary works into thematic shards using local AI analysis. Perfect for analyzing books, manuscripts, or any lengthy text.
Features:
- Automated discovery of characters, themes, and literary elements
- Multiple sharding strategies based on discovered content
- Integration with local AI services (Msty/Ollama)
- Zero manual preprocessing required
- On-the-fly shard writing to prevent memory overflow
Requirements:
- Python 3.9+
- Msty app or Ollama running locally with Llama 3.2 (or compatible model)
requestslibrary
Setup:
pip install requests
# Start Msty/Ollama with Llama 3.2 modelUsage:
python Literary_Text_Sharder_v1-1.pyThe tool will:
- Connect to your local AI service
- Analyze the text to discover characters and themes
- Create intelligent shards based on your chosen strategy
- Generate an index with metadata for each shard
Output:
- Shards directory:
{filename}-Literary-Shards-{timestamp}/ - Character-based or theme-based text segments
literary_index.jsonwith discovered metadata
A streamlined Python code comparison tool that analyzes function-level changes between git branches.
Features:
- AST-based function extraction
- Line-by-line comparison of function bodies
- CSV output for easy analysis
- Identifies added, removed, and modified functions
Usage:
python diff_simple.py <branch1> <branch2> <file_path>Example:
python diff_simple.py main feature-branch src/utils.pyOutput:
- Summary of changes to stdout
function_changes.csvwith detailed comparison:- Function names
- Change types (added/removed/modified)
- Line numbers
- Function body content
A Google Apps Script tool that converts Mermaid sequence diagrams into native shapes and connectors in Google Slides.
Features:
- Creates actual shapes, lines, arrows, and text boxes
- Supports sequence diagram participants, messages, and notes
- Handles alt/else conditionals and opt blocks
- Proper positioning and sizing of elements
Usage:
- Open Google Slides
- Extensions → Apps Script
- Copy the contents of
fixed-mermaid-converter.js - Replace the sample Mermaid code with your diagram
- Run
createMySequenceDiagram() - The diagram will be created on the current slide
Example Mermaid Code:
sequenceDiagram
participant A as Alice
participant B as Bob
A->>B: Hello Bob!
B-->>A: Hi Alice!
Supported Elements:
- Participants with aliases
- Solid arrows (->>)
- Dashed arrows (-->>)
- Notes over participants
- Alt/else conditional blocks
- Opt optional blocks
- Python 3.9+ (for Python tools)
- Git (for diff_simple.py)
- Google account (for mermaid converter)
- File Sharder: None (uses Python standard library)
- Literary Text Sharder:
requestslibrary, Msty/Ollama with LLM - Diff Simple: Git repository
- Mermaid Converter: Google Slides access
Feel free to submit issues and enhancement requests!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- Repository: https://github.com/JoshWrites/Toolkit
- Issues: https://github.com/JoshWrites/Toolkit/issues