Specs Export Tool for AI Assistants
Project description
Code is cheap, Show me Any Specs.
:page_facing_up: 中文版本 | :gear: Quick Start | :thinking: Reporting Issues
AnySpecs CLI is a unified command-line tool for exporting chat history from multiple AI assistants. It currently supports Cursor AI, Claude Code, and Kiro Records, with support for various export formats including Markdown, HTML, and JSON.
Features
- Multi-Source Support: Export from Cursor AI, Claude Code, and Kiro Records(More to come)
- Multiple Export Formats: Markdown, HTML, and JSON
- Project-Based and Workspace Filtering: Export sessions by project or current directory
- Flexible Session Management: List, filter, and export specific sessions
- Default Export Directory: All exports save to
.anyspecs/by default for organized storage - Terminal history and files diff history: Export terminal history and files diff history(WIP)
- AI Summary: Summarize chat history into a single file (WIP)
- Server Upload and Share: Upload exported files to remote servers (WIP)
Installation
From Source
# Clone the repository
git clone https://github.com/anyspecs/anyspecs-cli.git
cd anyspecs-cli
# Install in development mode
pip install -e .
# Or install normally
pip install .
Using pip
pip install anyspecs
Quick Start
List All Chat Sessions in this workspace
# List all chat sessions in this workspace from all sources
anyspecs list
# List only Cursor/Claude/Kiro sessions in this workspace
anyspecs list --source cursor/claude/kiro
# Show detailed information
anyspecs list --verbose
Export Chat Sessions
# Export current project's sessions to Markdown (default to .anyspecs/)
anyspecs export
# Export all sessions to HTML (default to .anyspecs/)
anyspecs export --all-projects --format html
# Export specific session
anyspecs export --session-id abc123 --format json
# Export Claude sessions only
anyspecs export --source claude --format markdown
# Export Kiro records only
anyspecs export --source kiro --format html
# Export with custom output path
anyspecs export --output ./exports --format html
# Export and upload to server(WIP)
anyspecs export --format json --upload --server https://myserver.com --username user --password pass
Supported Sources
Cursor AI
Extracts chat history from Cursor's local SQLite databases, including:
- Workspace-specific conversations
- Global chat storage
- Composer data and bubble conversations
- Project context and metadata
Claude Code
Extracts chat history from Claude Code's JSONL history files, including:
- User messages and AI responses
- Tool calls and results
- Session metadata
- Project context
Kiro Records
Extracts and combines markdown documents from .kiro directory, including:
- File metadata (name, modification time)
- Automatic project summary detection
Package Structure
anyspecs-cli/
├── anyspecs/
│ ├── __init__.py # Main package
│ ├── cli.py # CLI interface
│ ├── config.py # Configuration management
│ ├── core/ # Core functionality
│ │ ├── extractors.py # Base extractor classes
│ │ └── formatters.py # Export formatters
│ ├── exporters/ # Source-specific extractors
│ │ ├── cursor.py # Cursor AI extractor
│ │ └── claude.py # Claude Code extractor
│ │ └── kiro.py # Kiro Records extractor
│ └── utils/ # Utility modules
│ ├── logging.py # Logging configuration
│ ├── paths.py # Path utilities
│ └── upload.py # Upload functionality
├── setup.py # Package setup
├── requirements.txt # Dependencies
└── README.md # This file
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
# Clone the repository
git clone https://github.com/anyspecs/anyspecs-cli.git
cd anyspecs-cli
# Install in development mode with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black anyspecs/
# Type checking
mypy anyspecs/
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
v0.0.2
- Kiro Records support: Extract and export files from .kiro directory
- Default export directory: All exports now save to .anyspecs/ by default
- Workspace filtering: Cursor sessions now show only current workspace sessions in list command
v0.0.1
- Initial release
- Support for Cursor AI and Claude Code
- Multiple export formats (Markdown, HTML, JSON)
- Upload functionality
- Project-based filtering
- Organized package structure
Support
If you encounter any issues or have questions, please:
- Check the documentation
- Search existing issues
- Create a new issue
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anyspecs-0.0.3.tar.gz.
File metadata
- Download URL: anyspecs-0.0.3.tar.gz
- Upload date:
- Size: 53.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ea930dde12b46f5ce66e1d1560a2c3b09245dcda89a23ce6570bd075369508e
|
|
| MD5 |
506f8b256915766e8c57f60412e4f852
|
|
| BLAKE2b-256 |
b21684e432b6dd12f03c24c3eb0bbef1996816e2efd50b18b9f4e404516a1e13
|
File details
Details for the file anyspecs-0.0.3-py3-none-any.whl.
File metadata
- Download URL: anyspecs-0.0.3-py3-none-any.whl
- Upload date:
- Size: 60.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caf058b33ba7a745f47ab68f4cf0319c39a6320687b60ca9009a220482e47510
|
|
| MD5 |
ff0da88c896b48a4b0a3c6e93ebe66f0
|
|
| BLAKE2b-256 |
37119600ca18593d020611d27e50e9ccf42d1d88a9bf7afef504233673a6838f
|