CLI tool to automate ChipFoundry project submission to SFTP server
Project description
ChipFoundry CLI (cf-cli)
A command-line tool to automate the submission of ChipFoundry projects to the SFTP server.
Overview
cf-cli is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server. It automatically collects the required files, generates or updates your project configuration, and uploads everything to the correct location on the server.
Installation
Install from PyPI:
pip install chipfoundry-cli
chipfoundry --help
Project Structure Requirements
Your project directory must contain:
gds/directory with one of the following:user_project_wrapper.gds(for digital projects)user_analog_project_wrapper.gds(for analog projects)openframe_project_wrapper.gds(for openframe projects)
verilog/rtl/user_defines.v(required for digital/analog).cf/project.json(optional; will be created/updated automatically)
Example:
my_project/
├── gds/
│ └── user_project_wrapper.gds
├── verilog/
│ └── rtl/
│ └── user_defines.v
└── .cf/
└── project.json
Authentication
- By default, the tool will look for an SSH key at
~/.ssh/id_rsa. - You can specify a different key with
--sftp-key. - If no key is found, you will be prompted to enter a key path or your SFTP password.
- Your SFTP username is required (provided by ChipFoundry).
SFTP Server
- The default SFTP server is
sftp.chipfoundry.io(no need to specify unless you want to override).
Usage
Configure User Credentials
chipfoundry config
- Prompts for your SFTP username and key path. Only needs to be run once per user/machine.
Initialize a New Project
chipfoundry init
- Prompts for project name, type (auto-detected from GDS file if present), and version.
- Creates
.cf/project.jsonin the current directory. - Note: The GDS hash is NOT generated at this step (see below).
Push a Project (Upload)
chipfoundry push
- Run from your project directory (with
.cf/project.json). - Collects files, updates the GDS hash, and uploads to SFTP.
Pull Results
chipfoundry pull
- Downloads results for the current project to a local directory.
Check Status
chipfoundry status
- Shows all your projects and their input/output status on the SFTP server.
How the GDS Hash Works
- The
user_project_wrapper_hashin.cf/project.jsonis automatically generated and updated duringpush. - The hash is calculated from the actual GDS file being uploaded.
- This ensures the hash always matches the file you are submitting.
- You do not need to manage or update the hash manually.
- The hash is NOT generated during
initbecause the GDS file may not exist or may change before submission.
What Happens When You Run chipfoundry push?
- File Collection:
- The tool checks for the required GDS and Verilog files.
- It auto-detects your project type (digital, analog, openframe) based on the GDS file name.
- Configuration:
- If
.cf/project.jsondoes not exist, it is created. - The tool updates the GDS hash and any fields you override via CLI.
- If
- SFTP Upload:
- Connects to the SFTP server as your user.
- Ensures the directory
incoming/projects/<project_name>exists. - Uploads
.cf/project.json, the GDS file, andverilog/rtl/user_defines.v(if present). - Shows a progress bar for each file upload.
- Success:
- You’ll see a green success message when all files are uploaded.
Troubleshooting
- Missing files:
- The tool will error out if required files are missing or if more than one GDS type is present.
- Authentication errors:
- Make sure your SSH key is valid and registered with ChipFoundry, or use your password.
- SFTP errors:
- Check your network connection and credentials.
- Project type detection:
- Only one of the recognized GDS files should be present in your
gds/directory.
- Only one of the recognized GDS files should be present in your
- ModuleNotFoundError: No module named 'toml':
- This means your environment is missing the
tomldependency. Upgradechipfoundry-cliwithpip install --upgrade chipfoundry-cli, or installtomlmanually withpip install 'toml>=0.10,<1.0'.
- This means your environment is missing the
Support
- For help, contact info@chipfoundry.io or visit chipfoundry.io
- For bug reports or feature requests, open an issue on GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chipfoundry_cli-0.1.4.tar.gz.
File metadata
- Download URL: chipfoundry_cli-0.1.4.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b66a7a04e0f0f8c392602fb2db256c90dd696efdbcbd705b8a3c36f188a1771
|
|
| MD5 |
ede829b87cd41124f3ba1c9a2139a403
|
|
| BLAKE2b-256 |
a1d300cb92265bf3698c07b77bf0813ac6408e2d2ddd6cec003a3da5f08eeba2
|
File details
Details for the file chipfoundry_cli-0.1.4-py3-none-any.whl.
File metadata
- Download URL: chipfoundry_cli-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f8c13b15857bf74c14b6563443049145429a21933d6f1d88b8d28911aab8f2e
|
|
| MD5 |
347c37dac2f300b036c3bdbb39bd352e
|
|
| BLAKE2b-256 |
a7baa9a6f34f6bcef743171b7e63fb9315be161fed66b6c84640bfcbbac1524e
|