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.6.tar.gz (14.7 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.6-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file chipfoundry_cli-0.1.6.tar.gz.

File metadata

  • Download URL: chipfoundry_cli-0.1.6.tar.gz
  • Upload date:
  • Size: 14.7 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.6.tar.gz
Algorithm Hash digest
SHA256 31f9f09045d05c5e7de694c85f5fdfe6f388f1e415af47d8bdf5e224c5dfad48
MD5 9c0ea2c25a76664b80f320f30f7b73d4
BLAKE2b-256 50d7d49169c5c62cda1e6af965e7317e8f0064d571c0122351f98ec134f1928b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chipfoundry_cli-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0ef114d863c1382b1cbc9bc6cd3ef81ae0ac33aaa02690d42600289286987b42
MD5 fd6b35b07516feb67c0b089392b11406
BLAKE2b-256 6f0ce5dc325270bcf2700f08c3444f054e07e38d5b512fd58df77d72ec5d9165

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