Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repotokens-1.0.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repotokens-1.0.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

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

Hashes for repotokens-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e4694aa58736031df80130afa0207aaf6a4b64b234b592ce98e66bc4f51543e6
MD5 8e8c731bf2fd36f8de754fbbacac12c5
BLAKE2b-256 f51a303a6db57c42aac7134c2f905c0f5eac1ca00278e0f8b84e3b61a899ca2a

See more details on using hashes here.

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

Hashes for repotokens-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 54db55465c22eff051ada5eeef09162454f21cdce4f12348c07ca7f907b5ade4
MD5 91ec93838a35a629a98104f7c26e7931
BLAKE2b-256 c871fade256ac324dd2d1167a1bef7f1bbe6e9a9ac1cb9ec01309a39fe0060ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page