Count number of LLM tokens of source files contained in the repository / folder
Project description
repotokens
repotokens is a Python package for analyzing entire source repositories to count tokens and estimate costs for various LLMs. It can be used both as a command-line tool and as an importable Python library.
Features
- Analyzes entire repositories to count tokens on common source file types.
- Opinionated about excluding those filetypes / utilities that are unlikely to be useful for LLM reasoning on top of the repository.
- Estimates costs of for different LLMs based on token count
- Respects .gitignore files and common ignore patterns
- Can be used as both a Python library and a command-line tool
Installation
You can install repotokens using pip:
pip install repotokens
Usage as a Python Library
You can use repotokens in your Python scripts by importing it as follows:
from repotokens import analyze_directory, calculate_costs, MODELS
Analyzing a Directory
To analyze a directory and get token counts:
results = analyze_directory("/path/to/your/repo")
print(f"Total tokens: {results['total_tokens']}")
print(f"Processed files: {results['processed_files']}")
# Print token counts for each file
for file, tokens in results['file_tokens'].items():
print(f"{file}: {tokens} tokens")
Calculating Costs for a Specific Model
To calculate costs for a specific model:
model = "gpt-4o"
total_tokens = results['total_tokens']
costs = calculate_costs(total_tokens, model)
print(f"Costs for {model}:")
print(f"Input cost: ${costs['input_cost']:.2f}")
print(f"Output cost: ${costs['output_cost']:.2f}")
Getting Information for All Models
You can access information about all available models:
for model, prices in MODELS.items():
print(f"{model}:")
print(f" Input price: ${prices['input_price']} per 1M tokens")
print(f" Output price: ${prices['output_price']} per 1M tokens")
Command-Line Usage
repotokens can also be used as a command-line tool:
Analyze Current Directory
repotokens
Analyze a Specific Directory
repotokens /path/to/your/repo
Analyze a Directory and Show Costs for a Specific Model
repotokens /path/to/your/repo --model gpt-4o-mini
Show Version
repotokens --version
Project details
Release history Release notifications | RSS feed
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 repotokens-1.0.1.tar.gz.
File metadata
- Download URL: repotokens-1.0.1.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4694aa58736031df80130afa0207aaf6a4b64b234b592ce98e66bc4f51543e6
|
|
| MD5 |
8e8c731bf2fd36f8de754fbbacac12c5
|
|
| BLAKE2b-256 |
f51a303a6db57c42aac7134c2f905c0f5eac1ca00278e0f8b84e3b61a899ca2a
|
File details
Details for the file repotokens-1.0.1-py3-none-any.whl.
File metadata
- Download URL: repotokens-1.0.1-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54db55465c22eff051ada5eeef09162454f21cdce4f12348c07ca7f907b5ade4
|
|
| MD5 |
91ec93838a35a629a98104f7c26e7931
|
|
| BLAKE2b-256 |
c871fade256ac324dd2d1167a1bef7f1bbe6e9a9ac1cb9ec01309a39fe0060ff
|