{"id":45345263,"url":"https://github.com/deeprave/memstat","last_synced_at":"2026-02-21T11:07:57.433Z","repository":{"id":304774136,"uuid":"1019850405","full_name":"deeprave/memstat","owner":"deeprave","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-23T03:43:44.000Z","size":828,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T05:26:01.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deeprave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2025-07-15T01:26:35.000Z","updated_at":"2025-07-23T03:43:47.000Z","dependencies_parsed_at":"2025-07-15T10:05:52.023Z","dependency_job_id":"84ff3964-a6ac-4208-b35d-34485babf4c3","html_url":"https://github.com/deeprave/memstat","commit_stats":null,"previous_names":["deeprave/memstat"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/deeprave/memstat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeprave%2Fmemstat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeprave%2Fmemstat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeprave%2Fmemstat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeprave%2Fmemstat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deeprave","download_url":"https://codeload.github.com/deeprave/memstat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeprave%2Fmemstat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29679147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T09:33:50.764Z","status":"ssl_error","status_checked_at":"2026-02-21T09:33:19.949Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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-02-21T11:07:56.856Z","updated_at":"2026-02-21T11:07:57.427Z","avatar_url":"https://github.com/deeprave.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MemStat\n\nA lightweight macOS application that provides real-time memory statistics and process monitoring. MemStat can run in two modes: as a traditional menu bar app or as a regular windowed application.\n\n## Features\n\n### Dual Mode Support\n- **Menu Bar Mode**: Runs discreetly in your macOS menu bar with on-demand floating stats window\n- **Regular Window Mode**: Standard macOS app with always-visible window and dock icon (default)\n- **Mode Switching**: Switch between modes via menu options with automatic restart\n- **Persistent Preferences**: App remembers your selected mode between launches\n\n### Real-Time Memory Monitoring\n- **Physical Memory**: Total, Used, Free memory with visual indicators\n- **Virtual Memory**: Active, Inactive, Wired, Compressed memory breakdown\n- **Swap Memory**: Usage, utilization percentage, and swap activity (ins/outs)\n- **Memory Pressure**: Real-time pressure status with color-coded indicators\n\n### Process Monitoring\n- **Top 20 Processes**: Memory-consuming processes with sortable columns\n- **Process Details**: PID, Memory % and absolute usage, Virtual memory, CPU %, Command name\n- **Interactive Sorting**: Click column headers to sort, click again to reverse order\n- **Real-time Updates**: Process list refreshes every second\n\n### User Experience\n- **Smart Window Management**: Click to show/hide stats, click anywhere else to dismiss\n- **Draggable Windows**: In menu bar mode, click and drag the stats window to reposition\n- **Context Menu Integration**: Right-click menu bar icon for \"Bring to Front\" and other options\n- **Appearance Support**: Auto/Light/Dark mode with visual menu indicators\n- **Launch at Login**: Optional system startup integration\n- **Command Line Support**: Force startup mode with `--menubar`, `--window`, or `--help` flags\n- **Efficient Performance**: Optimized for minimal system resource usage\n\n## Requirements\n\n- macOS 13.0 (Ventura) or later\n- Apple Silicon or Intel Mac\n\n## Installation\n\n1. Download the latest release from the Releases page\n2. Move MemStat.app to your Applications folder\n3. Launch MemStat from Applications or Spotlight\n4. Grant necessary permissions when prompted\n5. Choose your preferred mode on first launch (Regular Window is default)\n\n## Usage\n\n### Regular Window Mode (Default)\n- App appears in dock with always-visible window\n- Use \"Mode\" menu in application menu bar to switch to Menu Bar mode\n- Standard macOS window controls (minimize, close, etc.)\n\n### Menu Bar Mode\n- **Left-click**: MemStat icon in your menu bar to show/hide current statistics\n- **Right-click**: Menu bar icon for context menu with options including:\n  - \"Bring to Front\": Show stats window or bring it to front if already visible\n  - Mode switching, preferences, and other settings\n- **Window Interaction**: Click and drag anywhere on the stats window to reposition it\n- **Auto-dismiss**: Click outside the stats window to hide it\n\n### Universal Features\n- **Sorting**: Click column headers in the process table to sort by that column\n- **Smart Interaction**: Window dragging automatically avoids interactive elements (headers)\n- **Preferences**: Access appearance settings and launch preferences via menus\n- **Command Line**: Use command line flags to override saved mode preference\n\n## Command Line Options\n\n```bash\n# Force startup in menu bar mode\n./MemStat.app/Contents/MacOS/MemStat --menubar\n\n# Force startup in regular window mode  \n./MemStat.app/Contents/MacOS/MemStat --window\n\n# Display usage information\n./MemStat.app/Contents/MacOS/MemStat --help\n```\n\n## Building from Source\n\n### Prerequisites\n- Xcode 15.0 or later\n- macOS 13.0 SDK or later\n\n### Using Just (Recommended)\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/memstat.git\ncd memstat\n\n# Build debug version (default)\njust build\n\n# Build release version\njust release\n\n# Run tests\njust test\n\n# Run specific test\njust test MemStatTests/AppModeTests/testModeToggling\n\n# Run in different modes for development\njust run          # Uses saved preference or default\njust run-window   # Force window mode\njust run-menubar  # Force menu bar mode\n\n# Create distribution packages\njust zip          # Create ZIP distribution\njust dmg          # Create DMG distribution\njust dist         # Create both ZIP and DMG\n\n# View all available commands\njust help\n```\n\n### Using Xcode Directly\n```bash\n# Build using Xcode\nopen MemStat.xcodeproj\n\n# Or build from command line\nxcodebuild -project MemStat.xcodeproj -scheme MemStat -configuration Release build\n\n# Run comprehensive test suite (125 tests)\nxcodebuild test -scheme MemStat -destination 'platform=macOS'\n```\n\n### Development\nThe project includes a comprehensive test suite with 125 tests covering:\n- Mode switching and preference persistence\n- Command line argument parsing\n- UI component functionality\n- Memory monitoring and data services\n- Theme management and appearance handling\n\nAll tests must pass before submitting changes. Use `just test` to run the full suite.\n\n## Privacy\n\nMemStat only reads system memory statistics and process information. It does not:\n- Collect or transmit any data\n- Modify system settings  \n- Access personal files or data\n- Require network access\n- Read from or write to the filesystem (except for saving user preferences)\n\nThe app operates entirely locally, requiring no network connectivity and performing no filesystem operations beyond standard macOS preference storage.\n\n## Contributing\n\nContributions are welcome! Please:\n1. Ensure all tests pass with `just test`\n2. Follow the existing code style and architecture\n3. Add tests for new functionality\n4. Update documentation as needed\n5. Submit a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeprave%2Fmemstat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeeprave%2Fmemstat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeprave%2Fmemstat/lists"}