{"id":50105218,"url":"https://github.com/edithatogo/osf-cli-go","last_synced_at":"2026-05-23T10:05:02.644Z","repository":{"id":355340018,"uuid":"1227283442","full_name":"edithatogo/osf-cli-go","owner":"edithatogo","description":"A command-line client for the Open Science Framework","archived":false,"fork":false,"pushed_at":"2026-05-18T10:15:27.000Z","size":266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-18T10:38:50.049Z","etag":null,"topics":["cli","go","open-science-framework","osf"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/edithatogo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-02T13:19:18.000Z","updated_at":"2026-05-18T10:15:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edithatogo/osf-cli-go","commit_stats":null,"previous_names":["edithatogo/osf-cli-go"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/edithatogo/osf-cli-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edithatogo%2Fosf-cli-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edithatogo%2Fosf-cli-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edithatogo%2Fosf-cli-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edithatogo%2Fosf-cli-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edithatogo","download_url":"https://codeload.github.com/edithatogo/osf-cli-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edithatogo%2Fosf-cli-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33390972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: 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":["cli","go","open-science-framework","osf"],"created_at":"2026-05-23T10:05:01.951Z","updated_at":"2026-05-23T10:05:02.637Z","avatar_url":"https://github.com/edithatogo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# osf-cli-go\n\nA Go command-line client for the Open Science Framework (OSF).\n\n[![CI](https://github.com/edithatogo/osf-cli-go/actions/workflows/ci.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/ci.yml)\n[![Lint](https://github.com/edithatogo/osf-cli-go/actions/workflows/lint.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/lint.yml)\n[![Security](https://github.com/edithatogo/osf-cli-go/actions/workflows/security.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/security.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/edithatogo/osf-cli-go.svg)](https://pkg.go.dev/github.com/edithatogo/osf-cli-go)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/edithatogo/osf-cli-go)](go.mod)\n[![Release](https://img.shields.io/github/v/release/edithatogo/osf-cli-go?include_prereleases)](https://github.com/edithatogo/osf-cli-go/releases)\n\n## Features\n\n- `osf auth whoami` — Identify the authenticated OSF account\n- `osf auth login` — Guided personal-access-token bootstrap for username/password users\n- `osf projects list|get` — List and inspect projects\n- `osf components list` — List project components\n- `osf files list|download|upload|mkdir|rm` — Browse, download, upload, create folders, and delete OSF Storage files\n- `osf search` and `osf preprints list` — Search OSF and list preprints\n- `osf registrations create` — Create draft registrations for an existing node\n- `osf export` — Export a node snapshot as JSON or a summary table\n- `osf-mcp` — Stdio MCP server exposing read-only OSF tools for agent clients\n- `osf completion bash|zsh|fish|powershell` — Shell completion scripts\n- JSON and human-readable output modes\n- Safe, atomic file downloads with conflict policy (fail/skip/overwrite)\n\n## Install\n\nRequirements:\n- Go 1.26 or newer\n\n```powershell\ngo install github.com/edithatogo/osf-cli-go/cmd/osf@latest\ngo install github.com/edithatogo/osf-cli-go/cmd/osf-mcp@latest\n```\n\nOr from a local checkout:\n```powershell\ngo build -o bin\\osf.exe ./cmd/osf\ngo build -o bin\\osf-mcp.exe ./cmd/osf-mcp\n.\\scripts\\build.ps1\n```\n\n## Authentication\n\nSet `OSF_TOKEN` in your shell session. Do not commit the token or write it into project files. `OSF_USERNAME` and `OSF_PASSWORD` are supported as an opt-in fallback credential source, but personal access tokens remain preferred for automation and for accounts using SSO or two-factor authentication.\n\n```powershell\n$env:OSF_TOKEN = '\u003cyour-token\u003e'\n```\n\nFor guided token setup:\n\n```powershell\nosf auth login\n```\n\n## Quick Start\n\n```powershell\nosf --help\nosf auth whoami\nosf projects list\nosf projects get https://osf.io/abc12/\nosf components list abc12\nosf files list abc12\nosf files download --file \u003cfile-id\u003e ./output/\nosf files download --tree abc12 ./output/\nosf files upload --node abc12 ./report.pdf\nosf search \"open science\"\nosf preprints list\nosf registrations create abc12 --schema \u003cschema-id\u003e --title \"Analysis plan\"\nosf export abc12 --json\n```\n\n## MCP Server\n\n`osf-mcp` runs a stdio MCP server with read-only tools:\n`osf_whoami`, `osf_projects_list`, `osf_project_get`,\n`osf_components_list`, `osf_files_list`, and `osf_contributors_list`.\n\nLocal development configs are included for GitHub Copilot, VS Code, Claude,\nCodex, Gemini CLI, and Qwen Code. Public registry metadata is in `server.json`\nand `registry/`.\n\n## Output Modes\n\nAll commands support `--output table|json` and `--json` shorthand:\n\n```powershell\nosf projects list --json\nosf auth whoami --output json\n```\n\n## Project Status\n\nThe CLI is **offline-tested** for read-only operations, file downloads, WaterButler write primitives, search, preprint listing, draft registration creation, project create/update/delete operations, and node export. All Conductor tracks are reconciled against their per-track plans with closeout review evidence; live OSF validation remains opt-in because it requires credentials and network access.\n\n## Documentation\n\n- [Release checklist](docs/release-checklist.md)\n- [Documentation site source](mkdocs.yml)\n- [Install guide](docs/install.md)\n- [Usage guide](docs/usage.md)\n- [Command reference](docs/commands.md)\n- [Examples](docs/examples.md)\n- [Architecture](docs/architecture.md)\n- [Developer guide](docs/contributing.md)\n- [MCP roadmap](docs/mcp-roadmap.md)\n- [Contributing](CONTRIBUTING.md)\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n\n## Citation\n\nIf you use this software in your research, please cite it using the metadata in [CITATION.cff](CITATION.cff).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedithatogo%2Fosf-cli-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedithatogo%2Fosf-cli-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedithatogo%2Fosf-cli-go/lists"}