Skip to main content

Esprit

A minimal terminal-based spreadsheet editor built with Python and Textual. Create, edit, and manage structured data tables with typed columns directly in your terminal.

Sometimes you want to take notes in a table.

Features

  • Terminal UI: Fast, keyboard-driven interface
  • Typed Columns: String, Number, Boolean, and URL column types
  • Row Operations: Insert, delete, and move rows with keyboard shortcuts
  • JSON Storage: Simple, readable JSON file format

Installation

Install esprit from PyPI:

pip install esprit

Or install from source:

git clone https://github.com/mkaz/esprit.git
cd esprit
pip install .

Requirements

  • Python 3.10 or higher

Usage

Starting Esprit

Launch with a new or existing file:

# Create or open a spreadsheet
esprit mydata.json

# Start with default empty spreadsheet
esprit

On first launch with a new file, you'll see the initialization dialog where you can:

  • Set the spreadsheet title
  • Define columns with names and types
  • Add or remove columns as needed

Column Types

  • String: Plain text values
  • Number: Numeric values with comma formatting
  • Boolean: True/False values displayed as ✓/✗
  • URL: Links with title and URL (format: Title | https://example.com)

Keyboard Shortcuts

Navigation

  • Arrow Keys: Move between cells

Editing

  • Enter: Edit current cell
  • Escape: Cancel editing

Row Operations

  • Ctrl+I: Insert empty row above current
  • Ctrl+K: Delete current row
  • Alt+Up: Move current row up
  • Alt+Down: Move current row down

File Operations

  • Ctrl+S: Save spreadsheet
  • Ctrl+Q: Quit (prompts to save if unsaved changes)

Special

  • Ctrl+Enter: Open URL in browser (when on URL column cell)

File Format

Esprit saves spreadsheets as JSON files:

{
  "metadata": {
    "title": "My Spreadsheet",
    "columns": [
      {"name": "Name", "type": "string"},
      {"name": "Amount", "type": "number"},
      {"name": "Active", "type": "boolean"},
      {"name": "Website", "type": "url"}
    ]
  },
  "rows": 20,
  "cols": 4,
  "cells": {
    "0,0": "Alice",
    "0,1": 1500,
    "0,2": true,
    "0,3": {"title": "Example", "url": "https://example.com"}
  }
}

License

MIT License - see LICENSE file for details

Contributing

Contributions welcome! Please open an issue or pull request on GitHub.

Links

Metadata

Release files for esprit 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esprit 0.2.3
File Size Uploaded
esprit-0.2.3.tar.gz 240.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for esprit 0.2.3
File Interpreter ABI Platform
esprit-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 258.8 kB

Release files / esprit-0.2.3.tar.gz

Download URL esprit-0.2.3.tar.gz
Size 240.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0f406a4f31c55018a239e197901f9d2b35446c92c6cf3e6d805f4e7eca888ffb
BLAKE2b-256 checksum
How to use checksums
75743170d64a159e0e2423b2e114ae48947d04b9761c1c0ae1009464b2e55d9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / esprit-0.2.3-py3-none-any.whl

Download URL esprit-0.2.3-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a9651c54c6e649d8f90d6036aa44058b36966a5af1df8a00b35813015b86778
BLAKE2b-256 checksum
How to use checksums
8c3fc1c00691c965b9c4138fc9f7b9863566af7ca4f0e3c8e95717717b584a9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page