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.5.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.5-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chipfoundry_cli-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 7b06bcf4e013b1d7edbfa75b10be11d625a24fda3bee75ab4cf86b93759390a4
MD5 88142007d8147cb90885ded0929fa0e6
BLAKE2b-256 5f6d1ddab92c229f311aac51beab689c3cc0a41a83a51bb3c97febbffc069a40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chipfoundry_cli-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7d911fc520a08966327bb6dd356a274288c405db739fbd9d4544af61d64931bf
MD5 deb528198f34bf8bf3a1dc52c0de8f52
BLAKE2b-256 7719c7e6bc10289cf681a90bf26ecc13da4309fbf2f09b23a9baeb8a4ba1a454

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