stata-c-plugins
NewDevelop high-performance C plugins for Stata using the stplugin.h SDK. Covers SDK setup, data flow, memory safety, .ado wrappers, cross-platform compilation, performance optimization, debugging, packaging, and translating Python/R packages into Stata.
Summary
ado wrappers, cross-platform compilation, performance optimization, debugging, packaging, and translating Python/R packages into Stata plugins.
- It is useful for developers who need to extend Stata's capabilities with custom C code, achieve faster execution than interpreted languages, or port existing algorithms from Python or R into Stata.
Overview
This project contains two Claude Code skills:
- Stata — A comprehensive reference that tells Claude how to use Stata. Covers core syntax, data management, econometrics, causal inference, graphics, and 20+ community packages.
- Stata C Plugins — A skill that tells Claude how to make Stata code that uses C plugins to do things. It includes information that Claude can use to translate existing packages into C plugins that can be called from Stata. This is very useful because it means you can do things in Stata that you wouldn't otherwise be able to do very easily.
As long as you can find an existing package somewhere, you can just let Claude go look at the existing Python package and this skill provides a workflow that Claude can use to develop a replication of whatever it is, implemented in Python or R or whatever, that runs in Stata and uses a C plugin. In many if not most cases, you should be able to get something that runs at least as fast in Stata as it did in the original language, if not faster.
Installation
Add this repo as a marketplace in Claude Code:
/plugin marketplace add dylantmoore/stata-skillThen install whichever option fits your needs:
| Plugin | Command |
|---|---|
| Stata reference only | /plugin install stata |
| C plugin development only | /plugin install stata-c-plugins |
| Both skills | /plugin install stata-bundle |
You can also find this and other plugins via the claude-plugins collection.
What's Included
Skill 1: Stata
37 core reference files covering:
- •Data import/export, management, and cleaning
- •Linear regression, panel data, time series
- •Limited dependent variables, survival analysis, SEM
- •Causal inference: DiD, RD, matching, treatment effects
- •Mata programming and matrix operations
- •Graphics, tables, and reporting
- •Workflow best practices
20 community package guides including:
- •
reghdfe— high-dimensional fixed effects - •
estout/outreg2— publication-quality tables - •
csdid,did_multiplegt— modern DiD estimators - •
rdrobust— regression discontinuity - •
psmatch2— propensity score matching - •
synth— synthetic control - •
ivreg2/xtabond2— IV and dynamic panel GMM - •And more (binsreg, coefplot, grstyle, winsor2, gtools, ...)
Skill 2: Stata C Plugins
Reference files covering:
- •Stata plugin SDK (
stplugin.h) setup and data flow - •Memory safety, debugging, and common failure modes
- •
.adowrapper patterns (preserve/merge, plugin loading) - •Cross-platform compilation (macOS, Linux, Windows)
- •Performance optimization (pthreads, pre-sorted indices, XorShift RNG)
- •Packaging and distribution via
net install - •Translation workflow for porting Python/R packages to Stata
- •Testing strategy with correlation-based validation against reference implementations
How It Works
Both skills use progressive disclosure: a compact SKILL.md file loaded on activation directs Claude to read only the reference files relevant to the current task. This keeps context usage efficient while giving Claude access to detailed reference documents when needed.
Coverage
| Category | Files | Topics |
|---|---|---|
| Data Operations | 7 | Import, management, strings, dates, math functions |
| Statistics | 10 | Regression, panel, time series, MLE, GMM, survey, MI |
| Causal Inference | 5 | DiD, RD, matching, treatment effects, selection |
| Advanced Methods | 5 | Survival, SEM, nonparametric, spatial, ML/lasso |
| Programming | 6 | Do-files, macros, loops, Mata |
| Output & Workflow | 3 | Tables, reporting, best practices, external tools |
| Packages | 20 | Community-contributed packages |
| C Plugins | 4 | SDK patterns, performance, packaging, translation |
Contributing
This repo is also a good place to learn about building Claude Code skills. The ROADMAP.md lists open problems around testing, progressive disclosure, and dynamic documentation that apply to skill development in general — not just Stata.
See CONTRIBUTING.md for how to add documentation for new Stata packages. Pull requests welcome!
Disclaimer
This reference material is derived in part from Stata's official documentation and community package documentation. No copyright is claimed. Stata is a registered trademark of StataCorp LLC. This project is not affiliated with or endorsed by StataCorp.
Install & Usage
/plugin marketplace add <org/repo>Add the configuration to /plugin install stata-c-plugins@<marketplace>
/pluginUse Cases
Usage Examples
/stata-c-plugins translate the Python package 'scipy.spatial.KDTree' into a Stata C plugin
/stata-c-plugins create a C plugin that computes rolling window statistics with memory safety
/stata-c-plugins package my_plugin.c and my_plugin.ado into a distributable .pkg file
Security Audits
Frequently Asked Questions
What is stata-c-plugins?
This skill enables Claude to develop high-performance C plugins for Stata using the stplugin.h SDK, covering SDK setup, data flow, memory safety, .ado wrappers, cross-platform compilation, performance optimization, debugging, packaging, and translating Python/R packages into Stata plugins. It is useful for developers who need to extend Stata's capabilities with custom C code, achieve faster execution than interpreted languages, or port existing algorithms from Python or R into Stata.
How to install stata-c-plugins?
To install stata-c-plugins: add a marketplace (/plugin marketplace add <org/repo>), then add the config to /plugin install stata-c-plugins@<marketplace>. Finally, /plugin in Claude Code.
What is stata-c-plugins best for?
stata-c-plugins is a plugin categorized under General. It is designed for: plugin, python. Created by Dylan Moore.
What can I use stata-c-plugins for?
stata-c-plugins is useful for: Translate a Python machine learning algorithm into a Stata C plugin for faster execution.; Build a custom C plugin to perform real-time data streaming and processing within Stata.; Optimize an existing Stata program by rewriting its bottleneck loops as a C plugin.; Create a cross-platform C plugin for Stata that works on both Windows and macOS.; Package a C plugin with an .ado wrapper for easy distribution and installation by other Stata users.; Debug a C plugin using GDB or LLDB by setting up a debugging workflow within Stata..