{"id":49091040,"url":"https://github.com/pybash1/board-cli","last_synced_at":"2026-04-20T18:41:04.565Z","repository":{"id":347003252,"uuid":"1191884844","full_name":"pybash1/board-cli","owner":"pybash1","description":"CLI for the Board clipboard sync app.","archived":false,"fork":false,"pushed_at":"2026-03-26T09:34:12.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T03:34:01.971Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pybash1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-25T17:20:23.000Z","updated_at":"2026-03-26T09:34:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pybash1/board-cli","commit_stats":null,"previous_names":["pybash1/board-cli"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pybash1/board-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybash1%2Fboard-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybash1%2Fboard-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybash1%2Fboard-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybash1%2Fboard-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pybash1","download_url":"https://codeload.github.com/pybash1/board-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybash1%2Fboard-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32060631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"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":[],"created_at":"2026-04-20T18:41:03.168Z","updated_at":"2026-04-20T18:41:04.555Z","avatar_url":"https://github.com/pybash1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Board CLI\n\nA Rust-based command line interface with TUI capabilities for managing Board API pastes.\n\n## Features\n\n- Interactive TUI interface\n- Configurable settings with TOML configuration\n- Multiple authentication methods (App Password and Device Code)\n- Create, read, and list pastes\n- Error handling\n- Configuration management\n\n## Authentication\n\nBoard CLI uses two authentication headers for API requests:\n\n1. **Device Code (Required)**: Every API request requires a device code\n2. **App Password (Optional)**: Additional authentication when needed\n\n### Device Code Authentication\n\nDevice codes are always required. Register a new device:\n\n```bash\nboard register\n# or\nboard device new\n```\n\nManage device codes:\n\n```bash\n# Show current device code\nboard device show\n\n# Set device code manually\nboard device set your_device_code_here\n\n# Clear device code\nboard device clear\n```\n\n### App Password Authentication\n\nSet an app password in your configuration file at `~/.config/board/config.toml`:\n\n```toml\napp_password = \"your_app_password_here\"\n```\n\n**Special Behavior for Default API**: When using the default API URL (`https://board-api.pybash.xyz`), the app password **must** be embedded from the `BOARD_APP_PASSWORD` environment variable at **build time**. This means the password value is compiled into the binary and used regardless of runtime environment variables:\n\n```bash\n# Set environment variable BEFORE building (REQUIRED for default API)\nexport BOARD_APP_PASSWORD=\"your_secure_password\"\ncargo build --release\n```\n\nThe built binary will use the embedded password value on any machine, even if `BOARD_APP_PASSWORD` is not set in the runtime environment.\n\n**Important**:\n- `BOARD_APP_PASSWORD` **must** be set at build time when using the default API URL\n- If `BOARD_APP_PASSWORD` is missing, empty, or contains only whitespace, the build will panic at runtime to prevent accidental deployment with invalid credentials\n\nFor other API URLs, the app password from the config file is used as normal.\n\nIf no app password is configured (either in config or environment), an empty value will be sent.\n\n### API Headers\n\nAll API requests include both headers:\n- `Device-Code: your_device_code`\n- `App-Password: your_app_password_or_empty`\n\n## Usage\n\n```bash\n# Show help\nboard --help\n\n# Launch TUI\nboard tui\n\n# Create a paste from stdin\necho \"Hello, World!\" | board create\n\n# Get paste content by ID\nboard get paste_id\n\n# List all paste IDs\nboard list\n\n# Show all pastes with content\nboard show\n\n# Manage device code\nboard device new\nboard device show\nboard device set device_code\nboard device clear\n```\n\n## Configuration\n\nConfiguration is stored in `~/.config/board/config.toml`:\n\n```toml\ndata_dir = \"~/.board-cli\"\ntheme = \"default\"\nauto_save = true\n\n# Device code (required) - set automatically via CLI commands\ndevice_code = \"your_device_code_here\"\n\n# App password (optional) - set manually in config\n# For the default API URL (https://board-api.pybash.xyz),\n# this is ignored and BOARD_APP_PASSWORD is embedded at build time instead\napp_password = \"your_app_password_here\"\n```\n\n### TUI Controls\n\n- **q** or **Esc**: Quit\n\n## Installation\n\n```bash\ncargo build --release\n```\n\n## Development\n\n```bash\n# Show help (default when no command given)\ncargo run\n\n# Launch TUI\ncargo run -- tui\n\n# Run tests\ncargo test\n```\n\n## Project Structure\n\n```\nsrc/\n├── main.rs          # Entry point\n├── cli/             # CLI argument parsing\n├── tui/             # TUI interface\n├── config/          # Configuration management\n└── error/           # Error types\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybash1%2Fboard-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpybash1%2Fboard-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybash1%2Fboard-cli/lists"}