一个生成带项目结构和文件内容的提示的CLI工具
项目描述
kopipasta
一个CLI工具,用于生成带项目结构、文件内容和网页内容的提示,同时安全地处理环境变量,并为大文件提供代码片段,还允许您只包含代码中最相关的部分。
- 一个LLM告诉我,在有些语言中,kopi意味着咖啡,然后一个扩散模型制作了这个美味的汤。
安装
您可以使用pipx(或pip)安装kopipasta
pipx install kopipasta
使用方法
要使用kopipasta,请在您的终端中运行以下命令
kopipasta [files_or_directories_or_urls]
将[files_or_directories_or_urls]
替换为您希望在提示中包含的文件或目录的路径,以及您希望从中获取内容的任何网页URL。
示例
kopipasta src/ config.json https://example.com/api-docs
这将生成一个包含以下内容的提示
- 项目结构
- 指定文件和目录的内容(对于大文件提供代码片段选项)
- 从提供的URL获取的内容(对于大内容提供代码片段选项)
- 处理
.env
文件中找到的环境变量(如果存在)
基于常见的.gitignore模式通常排除的文件和目录将被忽略。
生成的提示将在控制台中显示,并自动复制到您的剪贴板。
功能
- 生成一个包含项目概述、文件内容、网页内容和任务说明的结构化提示
- 为大文件(>100 KB)和网页内容(>10,000字符)提供代码片段选项
- 从网页URL获取并包含内容
- 检测并安全处理来自
.env
文件的环境变量 - 基于常见的.gitignore模式忽略文件和目录
- 允许交互式选择要包含的文件
- 自动将生成的提示复制到剪贴板
环境变量处理
如果当前目录中存在 .env
文件,kopipasta 将
- 读取并存储环境变量
- 在文件内容和网页内容中检测这些变量
- 提示您选择如何处理每个检测到的变量
- (m)ask: 将值替换为星号
- (s)kip: 将值替换为"[REDACTED]"
- (k)eep: 保持值不变
这确保了在生成的提示中安全地处理敏感信息。
代码片段功能
对于大于100 KB的大文件和大于10,000字符的网页内容,kopipasta 提供了代码片段选项
- 对于文件:前50行或4 KB(4,096字节),以先到者为准
- 对于网页内容:前1,000个字符
这有助于管理整个提示的大小,同时仍然提供有关内容结构的有用信息。
示例输出
❯ kopipasta . https://example.com/api-docs
Directory: .
Files:
- __init__.py
- main.py (120 KB, ~120000 chars, ~30000 tokens)
- large_data.csv (5 MB, ~5000000 chars, ~1250000 tokens)
- .env
(y)es add all / (n)o ignore all / (s)elect individually / (q)uit? y
main.py is large. Use (f)ull content or (s)nippet? s
large_data.csv is large. Use (f)ull content or (s)nippet? s
Added all files from .
Added web content from: https://example.com/api-docs
File and web content selection complete.
Current prompt size: 10500 characters (~ 2625 tokens)
Summary: Added 3 files from 1 directory and 1 web source.
Detected environment variables:
- API_KEY=12345abcde
How would you like to handle API_KEY? (m)ask / (k)eep: m
Enter the task instructions: Implement new API endpoint
Generated prompt:
# Project Overview
## Project Structure
|-- ./ |-- init.py |-- main.py |-- large_data.csv |-- .env
## File Contents
### __init__.py
```python
# Initialize package
main.py (代码片段)
import os
import pandas as pd
API_KEY = os.getenv('API_KEY')
def process_data(file_path):
df = pd.read_csv(file_path)
# Rest of the function...
# More code...
large_data.csv (代码片段)
id,name,value
1,John,100
2,Jane,200
3,Bob,150
4,Alice,300
# ... (first 50 lines or 4 KB)
网页内容
https://example.com/api-docs (代码片段)
API Documentation
Endpoint: /api/v1/data
Method: GET
Authorization: Bearer **********
...
任务说明
实现新的API端点
任务分析和规划
开始之前,请用您自己的话复述任务。如有需要,请要求澄清。一旦您清楚,请要求继续。
然后,概述任务计划。最后,使用您的计划来完成任务。
提示已复制到剪贴板。最终大小:1500个字符(~ 375个标记)
## License
This project is licensed under the MIT License.
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
kopipasta-0.13.0.tar.gz (13.0 KB 查看哈希值)
构建分发
kopipasta-0.13.0-py3-none-any.whl (11.6 kB 查看哈希值)
关闭
kopipasta-0.13.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c04980cbb5468d7ab1a8517ac43249d3bef828c13c9631d39986cfed77f7d0fd |
|
MD5 | 1c5d9cbe690cab366e8be60a48b61cef |
|
BLAKE2b-256 | 41cdfe91c948cca70fb4c0535bef0721c48379901b80e422702f1160fac5f10f |
关闭
kopipasta-0.13.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81330a9afd0964ce7761244a84b34bad38b09e2958799ebb98e9886b0571ab4c |
|
MD5 | 5faed3b7954147366c5142d74cd19efb |
|
BLAKE2b-256 | 4df649f8d8a6ee5e82636e6562f7bb78408f9a94f95689320baf0df38a277615 |