explaingit

andmarti1424/sc-im

5,618CAudience · developerComplexity · 3/5Setup · moderate

TLDR

A terminal-based spreadsheet that works like Vim, supporting CSV, XLSX, and ODS files, Lua scripting, GNUPlot charts, row filtering and sorting, and up to 65,536 rows by default.

Mindmap

mindmap
  root((sc-im))
    What it does
      Terminal spreadsheet
      Vim key bindings
      Formula calculations
    File Formats
      CSV and TSV
      XLSX and ODS
      Markdown export
    Features
      Lua scripting
      GNUPlot charts
      Filter and sort rows
      Wide character support
    Setup
      ncurses gcc bison
      Homebrew on macOS
      Config at scimrc
    Audience
      Vim users
      Terminal power users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Edit and analyze spreadsheet data entirely in a terminal using Vim-style keyboard navigation without leaving the command line.

USE CASE 2

Import a CSV or XLSX file, filter and sort rows, and export the result as a Markdown table.

USE CASE 3

Automate repetitive spreadsheet tasks by writing Lua scripts that sc-im can execute non-interactively.

USE CASE 4

Generate charts from spreadsheet data by connecting sc-im to GNUPlot.

Tech stack

CncursesLuaGNUPlot

Getting it running

Difficulty · moderate Time to first run · 30min

Building from source requires ncurses, bison, gcc, and make, optional XLSX support needs xlsxwriter and libxml, on macOS, Homebrew installs it in one command.

No license information is mentioned in the explanation.

In plain English

sc-im is a spreadsheet calculator that runs entirely inside a terminal window. Instead of a graphical interface with a mouse, it uses keyboard commands inspired by the Vim text editor. The project is a modern continuation of an older Unix program called sc, originally written by James Gosling and Mark Weiser. sc-im is maintained by a single developer and accepts donations to support continued development. The interface looks and behaves like a traditional spreadsheet grid, with rows and columns for entering numbers and text. Navigation uses the same hjkl keys as Vim, and other Vim-style commands handle actions like yanking cells, inserting or deleting rows, and undoing changes. The spreadsheet supports up to 65,536 rows and 702 columns by default, expandable to over a million rows if needed. sc-im can read and write several file formats, including CSV, TSV, XLSX, and ODS. It can also export tables as Markdown. For data visualization, it can communicate with GNUPlot to produce charts from spreadsheet data. Users can write scripts in Lua to automate tasks, and the program can also run without any user interaction, taking its input from an external script file. Other features include row filtering and sorting, subtotals, cell formatting options such as bold and italic, clipboard support, and customizable colors using RGB values. Wide character support covers a range of alphabets including Japanese, Chinese, Greek, Russian, and several European languages. Building sc-im from source requires ncurses, bison, gcc, and make. On macOS, Homebrew can install it in one command. Optional dependencies like xlsxwriter and libxml add XLSX support, while Lua and GNUPlot unlock scripting and graphing features. Configuration lives in a plain text file at ~/.config/sc-im/scimrc.

Copy-paste prompts

Prompt 1
I have a CSV file with sales data. Show me the sc-im commands to open it, sort by the revenue column descending, filter rows where revenue is above 1000, and export the result as a Markdown table.
Prompt 2
Write a Lua script for sc-im that reads a column of numbers, computes a running total in the next column, and saves the file.
Prompt 3
I want to plot a bar chart from column B of my sc-im spreadsheet using GNUPlot. Give me the sc-im command sequence to produce the chart.
Open on GitHub → Explain another repo

← andmarti1424 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.