{"id":21712747,"url":"https://github.com/mhausenblas/funcnstein","last_synced_at":"2026-02-08T12:06:16.023Z","repository":{"id":140043615,"uuid":"143729896","full_name":"mhausenblas/funcnstein","owner":"mhausenblas","description":"a multi-platform tool for managing functions","archived":false,"fork":false,"pushed_at":"2018-08-06T15:24:03.000Z","size":394,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-02T18:46:34.441Z","etag":null,"topics":["aws-lambda","cli","faas","knative","kubeless","openfaas","openwhisk","serverless"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhausenblas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-06T13:06:46.000Z","updated_at":"2018-08-13T21:52:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"8645d71f-20a7-4936-a281-2cdcdac0db46","html_url":"https://github.com/mhausenblas/funcnstein","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mhausenblas/funcnstein","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhausenblas%2Ffuncnstein","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhausenblas%2Ffuncnstein/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhausenblas%2Ffuncnstein/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhausenblas%2Ffuncnstein/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhausenblas","download_url":"https://codeload.github.com/mhausenblas/funcnstein/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhausenblas%2Ffuncnstein/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29229415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T12:03:03.049Z","status":"ssl_error","status_checked_at":"2026-02-08T12:02:56.077Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","cli","faas","knative","kubeless","openfaas","openwhisk","serverless"],"created_at":"2024-11-25T23:41:31.048Z","updated_at":"2026-02-08T12:06:16.009Z","avatar_url":"https://github.com/mhausenblas.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# funcnstein\n\n![funcnstein logo](img/funcnstein-logo.png)\n\n_Kudos to Ashley McNamara, Renee French, and Mat Ryer for the logo, via [gopherize.me](https://gopherize.me/)._\n\n---\n\nAre you into serverless? Using, for example, [AWS Lambda](https://aws.amazon.com/lambda/) or [knative](https://github.com/knative/serving) or [Apache OpenWhisk](https://openwhisk.apache.org/)? When you're building a non-trivial app based on functions you potentially end up with dozens or hundreds of functions.\n\nHow do you manage them? Know what is running, what the dependencies between functions are? Maybe you're manually updating a spreadsheet or perhaps you have put together a nice little shell script that queries the state?\n\nI believe we can do better, better as in great UX, ease of use, and powerful set of operations, but focused on the task of managing functions from an operational point of view. So, you would still use Serverless, CloudFormation, Terraform, or your own tooling to deploy, monitor, or debug your functions.\n\nSo this is what the idea of `funcnstein` is: a multi-platform tool for managing functions.\n\n\n## Exemplary usage\n\nSample interactions follow below—note, no matter if you're using the CLI tool against Lambda or OpenFaaS or kubeless or whatever target, the UX is always the same.\n\n### Getting an overview of what is running\n\n```bash\n$ functl get\nNAME                STATUS    INVOCATIONS   AGE\nconvertimg          Running   21k           42d\npreprocess          Running   29k           42d\nlimitchecker        Running   40k           30d\ncompliance          Running    8k           18d\nmyfirstgofunction   Running   300           10m\n```\n\n### Examining a specific function\n\n```bash\n$ functl describe convertimg\nEnvironment: AWS Lambda\nProject: A paying customer, actually\nState: Running (since 2018-06-25)\nLanguage: Node.js\nInvocations: 20988\nTriggers: API Gateway, S3 \nLabels: owner=mshelley\n```\n\n### Resolving dependencies\n\n```bash\n$ functl resolve convertimg \nCalled by:\n- preprocess\nCalls:\n- limitchecker\n- compliance\n```\n\n### Organizing stuff\n\n```bash\n$ functl label convertimg stage=prod\nLabels: owner=mshelley, stage=prod\n```\n\n### Advanced queries\n\n```bash\n$ functl get --project='*paying*' --selector='owner=mshelley' --invocations='\u003e20k'\nNAME                STATUS    INVOCATIONS   AGE\nconvertimg          Running   21k           42d\n```\n\n\n## FAQ\n\nQ: How is `functl` pronounced?\u003cbr /\u003e\nA: fun-kuddle … because you can't control fun\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhausenblas%2Ffuncnstein","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhausenblas%2Ffuncnstein","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhausenblas%2Ffuncnstein/lists"}