@jhzhu89/m2r 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +59 -31
  2. package/dist/index.js +492 -468
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -43,11 +43,34 @@ m2r
43
43
 
44
44
  Then point your Anthropic client to `http://localhost:8000`.
45
45
 
46
- ## Shell Integration
46
+ ## Linux (systemd user service)
47
47
 
48
- These shell functions automatically start `m2r` when you run `claude` and configure the necessary environment variables.
48
+ Install and start:
49
49
 
50
- ### Zsh / Bash
50
+ ```bash
51
+ ./scripts/m2r-service.sh install
52
+ ```
53
+
54
+ Status and logs:
55
+
56
+ ```bash
57
+ systemctl --user status m2r.service
58
+ journalctl --user -u m2r.service -f
59
+ ```
60
+
61
+ Enable start on boot without login:
62
+
63
+ ```bash
64
+ loginctl enable-linger $USER
65
+ ```
66
+
67
+ Uninstall:
68
+
69
+ ```bash
70
+ ./scripts/m2r-service.sh uninstall
71
+ ```
72
+
73
+ ### Zsh / Bash (optional helpers)
51
74
 
52
75
  Add to `~/.zshrc` or `~/.bashrc`:
53
76
 
@@ -76,34 +99,39 @@ claude() {
76
99
  command claude "$@"
77
100
  }
78
101
 
79
- m2r-log() {
80
- local log="$HOME/.local/log/m2r.log"
81
- local follow=false tail=50
82
- while [[ $# -gt 0 ]]; do
83
- case "$1" in
84
- -f|--follow) follow=true; shift ;;
85
- -n|--tail) tail="$2"; shift 2 ;;
86
- *) shift ;;
87
- esac
88
- done
89
- [[ ! -f "$log" ]] && echo "Log not found: $log" && return 1
90
- $follow && tail -n "$tail" -f "$log" || tail -n "$tail" "$log"
91
- }
92
-
93
- m2r-restart() {
94
- local proxy_port=8000 m2rrc="$HOME/.m2rrc"
95
- if [[ -f "$m2rrc" ]]; then
96
- local port_line=$(grep '^PROXY_PORT=' "$m2rrc")
97
- [[ -n "$port_line" ]] && proxy_port="${port_line#PROXY_PORT=}"
98
- fi
99
- pkill -f "node.*m2r" 2>/dev/null && echo "Stopped m2r" || echo "m2r not running"
100
- mkdir -p "$HOME/.local/log"
101
- nohup m2r >> "$HOME/.local/log/m2r.log" 2>&1 &
102
- for i in {1..10}; do
103
- sleep 0.3
104
- nc -z localhost "$proxy_port" 2>/dev/null && echo "m2r started on port $proxy_port" && return 0
105
- done
106
- echo "Failed to start m2r"; return 1
102
+ m2r-config() {
103
+ local m2rrc="$HOME/.m2rrc"
104
+ local action="$1"
105
+ local key="$2"
106
+ local value="$3"
107
+
108
+ mkdir -p "$(dirname "$m2rrc")"
109
+
110
+ case "$action" in
111
+ get)
112
+ [[ -z "$key" ]] && echo "Usage: m2r-config get KEY" && return 1
113
+ [[ -f "$m2rrc" ]] && grep -E "^${key}=" "$m2rrc" | tail -n 1 | cut -d= -f2-
114
+ ;;
115
+ set)
116
+ [[ -z "$key" || -z "$value" ]] && echo "Usage: m2r-config set KEY VALUE" && return 1
117
+ if [[ -f "$m2rrc" ]] && grep -q "^${key}=" "$m2rrc"; then
118
+ if sed --version >/dev/null 2>&1; then
119
+ sed -i "s|^${key}=.*|${key}=${value}|" "$m2rrc"
120
+ else
121
+ sed -i '' "s|^${key}=.*|${key}=${value}|" "$m2rrc"
122
+ fi
123
+ else
124
+ echo "${key}=${value}" >> "$m2rrc"
125
+ fi
126
+ ;;
127
+ list|"")
128
+ [[ -f "$m2rrc" ]] && cat "$m2rrc" || true
129
+ ;;
130
+ *)
131
+ echo "Usage: m2r-config [list|get KEY|set KEY VALUE]"
132
+ return 1
133
+ ;;
134
+ esac
107
135
  }
108
136
  ```
109
137