The Data Scientist's Dev Environment: Jupyter, Conda, and Config Sync
Jupyter configs, conda environments, matplotlib defaults, and API keys for data providers. Sync your entire data science setup with one command.
Data Science Environments Are Fragile
Data science work is uniquely dependent on environment consistency. A different version of pandas can produce different aggregation results. A missing Jupyter extension means your visualization workflow breaks. A conda environment that took an hour to resolve is gone when you switch machines. And the API keys for your data providers are scattered across notebook cells and shell history.
Most data scientists work across at least two machines: a laptop for exploratory work and a more powerful desktop or cloud instance for training. Keeping these environments in sync manually is a recipe for wasted time and irreproducible results.
ConfigSync bridges this gap by syncing your Jupyter configuration, conda environment specifications, plotting defaults, and encrypted API keys across every machine you use.
Jupyter Configuration and Extensions
Jupyter's configuration controls everything from default kernel behavior to security settings and extension state. These files live in ~/.jupyter/ and are almost never backed up.
Your IPython startup directory is particularly valuable. If you have auto-imports (numpy as np, pandas as pd) or custom magic commands, those live in startup scripts that execute every time you open a notebook.
Conda Environment Exports
Conda environments take time to build. Dependency resolution alone can take minutes for complex environments. Rather than rebuilding from scratch, export your environment and let ConfigSync sync the specification.
configsync config set hooks.post-pull "conda env update --file ~/environment.yml --prune"Matplotlib, Seaborn, and Plotting Defaults
Custom plotting styles are the kind of configuration that takes hours to perfect and seconds to lose. Matplotlib reads from a matplotlibrc file, and Seaborn builds on top of it. If you have a custom style, track it.
If your team has a standard plotting style for publications or presentations, this is an excellent candidate for shared team configs. Everyone gets the same chart aesthetics without copying files around.
API Keys for Data Providers
Data scientists work with APIs from providers like Kaggle, Hugging Face, OpenAI, Snowflake, and various data brokers. These keys should never live in notebook cells or plain text files.
By storing these as ConfigSync secrets, they are encrypted at rest and available on any machine where you pull your environment. No more searching Slack history for that API key your colleague shared six months ago.
Pip and Package Manager Configuration
Beyond conda, you likely have pip configuration, Poetry settings, or other Python tool configs that affect how packages are installed and resolved.
| Config File | Purpose | Track With |
|---|---|---|
| ~/.pip/pip.conf | Custom index URLs, trusted hosts | configsync add config |
| ~/environment.yml | Conda env specification | configsync add config |
| ~/.jupyter/ | Notebook and Lab settings | configsync add config |
| ~/.kaggle/kaggle.json | Kaggle API credentials | configsync add config --encrypt |
| ~/.config/matplotlib/ | Plotting defaults and styles | configsync add config |
The Post-Pull Hook: Automated Environment Setup
The real power for data scientists is the post-pull hook. When you pull your ConfigSync state on a new machine, you want conda environments to rebuild automatically.
With this setup, configsync pull on a new machine restores your Jupyter config, recreates your conda environments, installs your extensions, and verifies that core packages are available. Your entire data science workflow is one command away from any machine.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.