Skip to main content

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.json in 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_hash in .cf/project.json is automatically generated and updated during push.
  • 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 init because the GDS file may not exist or may change before submission.

What Happens When You Run chipfoundry push?

  1. 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.
  2. Configuration:
    • If .cf/project.json does not exist, it is created.
    • The tool updates the GDS hash and any fields you override via CLI.
  3. 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, and verilog/rtl/user_defines.v (if present).
    • Shows a progress bar for each file upload.
  4. 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.
  • ModuleNotFoundError: No module named 'toml':
    • This means your environment is missing the toml dependency. Upgrade chipfoundry-cli with pip install --upgrade chipfoundry-cli, or install toml manually with pip install 'toml>=0.10,<1.0'.

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chipfoundry_cli-0.1.4.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chipfoundry_cli-0.1.4-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

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

Hashes for chipfoundry_cli-0.1.4.tar.gz
Algorithm Hash digest
SHA256 6b66a7a04e0f0f8c392602fb2db256c90dd696efdbcbd705b8a3c36f188a1771
MD5 ede829b87cd41124f3ba1c9a2139a403
BLAKE2b-256 a1d300cb92265bf3698c07b77bf0813ac6408e2d2ddd6cec003a3da5f08eeba2

See more details on using hashes here.

File details

Details for the file chipfoundry_cli-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for chipfoundry_cli-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3f8c13b15857bf74c14b6563443049145429a21933d6f1d88b8d28911aab8f2e
MD5 347c37dac2f300b036c3bdbb39bd352e
BLAKE2b-256 a7baa9a6f34f6bcef743171b7e63fb9315be161fed66b6c84640bfcbbac1524e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page